함수 manageFirstList
은 시간에 하나의 요소를 전역 목록 x에 반복적으로 복사해야합니다.전역 변수 및 목록 함수
(define test1DataA '(("a" "a") ("b" "b") ("c" "c") ("d" "d") ("e" "ok")))
(define test1DataB '(("a" "aa") ("b" "bb") ("c" "cc") ("d" "dd") ("ok" "Ir OK!")))
(define x '())
(define manageFirstList
(lambda (a b)
((cond ((not (null? b))
((append x (car a))
(manageFirstList (cdr a) b)))))))
(define ff (lambda (a b) (manageFirstList a b)))
(ff test1DataA test1DataB)
하지만 오류가 발생합니다
car: expects argument of type <pair>; given '()
질문은 다음과 같습니다
- 어떻게 글로벌 가치 'X'를 업데이트 할을?
- 목록을 올바른 방법으로 연결하려면 어떻게합니까?
나는 이런 식으로 (또는 해결 방법이) 1 개 이상의 함수를 호출 할 수 있습니다 :
((append x (car a)) (manageFirstList (cdr a) b))
편집 : 난 할 노력하고있어 각각의 첫번째 값 목록을 만드는 것입니다 test1DataA 목록 항목과 각 test1DataB 목록 항목의 두 번째 값입니다. 여기서 test1DataA 목록 요소의 두 번째 값은 test1DataB 요소의 첫 번째 값과 같습니다. 귀하의 질문에 대해
감사의 말. 내가 뭘 하려는지 각 test1DataA 목록 항목의 첫 번째 값과 test1DataA 목록 요소의 두 번째 값이 test1DataB의 목록 요소의 첫 번째 값과 동일한 각 test1DataB 목록 항목의 두 번째 값으로 목록을 만드는 것입니다. 그것이 x 값이 유지해야하는 것입니다. – Trac3
결과 목록을 단어로 설명하는 대신 원하는대로 작성하면 훨씬 더 명확 해집니다. 어쨌든 나는 그것을 줄 것이다. –
감사합니다 :) 귀하의 답변은 제가 SCHEME에 대해 더 많이 이해할 수 있도록 도와주었습니다. – Trac3