내가 예를g와 동일한 패리티 함수를 만듭니다. MIT 방식의 w
(same-parity 1 2 3 4 5 6 7)->(1 3 5 7)
(same-parity 2 3 4 5 6)->(2 4 6).
를 들어, 하나 또는 그 이상의 정수를 받아 첫 번째 인수와 같은 짝수 홀수 패리티가 모든 인수의 목록을 반환하는 함수를 작성하는 것을 시도하고 내 이 (same-parity (list 1 2 3 4))
을하려고 할 때 코드가
(define (same-parity g . w)
(define (iter-parity items)
(if (= (length items) 1)
(if (= (remainder items 2) (remainder g 2))
item
'())
(if (= (remainder g 2) (remainder (car items) 2))
(cons (car items) (iter-parity (cdr items)))
(iter-parity (cdr items)))))
(cons g (iter-parity w)))
, 나는 오류 메시지를 받았습니다 : 차에 첫 번째 인수로 전달 된 객체를(), 올바른 형식이 아닙니다.
나는 어떤 일이 일어나는지 말해 줄 수 있습니까?
여기가 첫 번째 질문이므로 코드를 식별 할 수있는 자유를 확보하여 더 읽기 쉽도록했습니다. 장래에 우리가 당신의 코드를 이해할 수 있도록 이것을하십시오 :) – jozefg
'nil'을 기본 경우로하는 것은 길이가 1 인리스트보다 더 자연스러운 재귀 패턴을 만들어냅니다. – molbdnilo