나는 목록을 포함하고있는 목록을 가지고 간략화 된 버전을 반환하는 것으로 가정되는 flatten
이라는 함수를 작성 중이다. 내 기능을 실행하려고하면 점이있는 람다 목록은 매크로가 아니라 여기에 있습니다 : LIST "이 문제를 해결하는 방법에 대한 제안 사항은 무엇입니까?오류 : 점이있는 람다 목록은 매크로에만 허용되며 여기서는 사용할 수 없습니다 : LIST?
이것은 현재 가지고있는 내용입니다.
(defun flatten list
(cond
(null list)'()
(list (first list))
(append (flatten (first list))
(flatten (rest list)))
(cons (first list (flatten (rest list))))))
심볼 이름으로'list'를 사용하지 마십시오; 그것은 이미 가치가 있으며, 이것은 그것을 숨길 것입니다. –
@ScottHunter Common Lisp의 함수와 변수 (및 다른 것들)는 다른 네임 스페이스에 있으므로,'list'를 변수 이름으로 사용하는 것이 완벽합니다. – jkiiski
[defun의 구문] (http://www.lispworks.com/documentation/HyperSpec/Body/m_defun.htm)에는 [일반 람다 목록] (http://www.lispworks.com/documentation/)이 관련되어 있습니다. HyperSpec/Body/03_da.htm) :'list' 심볼은 목록이 아니며 보통의 람다리스트는 아닙니다. 여기에도 다른 점도 있습니다. – tfb