며칠 전 Common Lisp을 배우기 시작했고, 트리에 숫자를 삽입하는 함수를 작성하려고합니다. 당신이 괄호 너무 많은 세트가있을 때 이런 일이 발생처럼 오류를 받고 있어요,Common lisp error : "람다 표현식이어야합니다"
주위에 인터넷 검색에서*** - SYSTEM::%EXPAND-FORM: (CONS NIL LST) should be a lambda expression
, 그것은 보이지만, 주변 일을 한 시간 정도 동안보고 및 변경 한 후, 나는 '수 내가이 일을 할 수있는 곳을 알아 냈어.
(defun insert (lst probe)
(cond ((null lst) (cons probe lst))
((equal (length lst) 1)
(if (<= probe (first lst))
(cons probe lst)
(append lst (list probe))))
((equal (length lst) 2)
((cons nil lst) (append lst nil) (insertat nil lst 3)
(cond ((<= probe (second lst)) (insert (first lst) probe))
((> probe (fourth lst)) (insert (fifth lst) probe))
(t (insert (third lst) probe)))))))
나는 그것이 ((동일 (길이 LST 이후에 발생한 것 확신) 2), 아이디어는 기존에 빈리스트를 삽입하는 것입니다
이
은 무슨 일이 일어나고 코드입니다 목록, 다음 마지막에 빈 목록을 추가하고 중간에 빈리스트를 삽입
나는 당신이 옳다고 믿습니다. 단점은 실제로리스트를 수정하지 않는다는 것을 잊었습니다. –