목록 내에서 주어진 원자의 모든 발생을 계산하는 함수를 작성해야합니다. 이것이 내가 가진 것입니다.
(defun my-count (a L)
(cond
((null L) nil)
((equal a (car L))(+ 1 (my-count a (cdr L))))
(t (my-count a(cdr L)))
)
)
내 이해로 이것은 작동합니다. 그러나 추적을 실행하면 (자동차 L과 같음) true로 평가되면 재귀 호출을 수행하지만 + 1을 초기화하지 않습니다. 분명히 내가 놓친 것이 있습니다.
문제는 널 조건입니다. 당신은 재귀 적 덧셈에 있으며, 완료되면 nil이 아닌 0을 추가해야합니다.
(defun my-count (a L)
(cond
((null L) 0)
((equal a (car L)) (+ 1 (my-count a (cdr L))))
(t (my-count a (cdr L)))))
같은
? (my-count 'x '(a x b))
1
? (my-count 'x '(a x x b))
2
? (my-count 'x '(a b))
0
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다