lisp의 목록이 점으로 구분 된 쌍인지 어떻게 확인할 수 있습니까?Lisp - 목록이 점으로 구분 된 쌍인지 어떻게 확인할 수 있습니까?
CL-USER 20 : 3 > (dotted-pair-p (cons 1 2))
T
CL-USER 20 : 3 > (dotted-pair-p '(1 2))
NIL
CL-USER 20 : 3 > (dotted-pair-p '(1 2 3))
NIL
나는 length=2
경우 검사를 시도했지만 오류가 발생했습니다 :이 숙제이기 때문에
(1 .()).
, 나는 ':
이CL-USER 28 : 1 > (= (length (cons 2 3)) 2)
Error: In a call to LENGTH of (2 . 3), tail 3 is not a LIST.
모든 적절한 목록은 특정 양식의 점선 쌍입니다. – Marcin
내 대답을보고 둘 사이에 다른 점을 생각해보십시오. '길이'는 빈 목록이 있다고 가정합니다. 그것이 멈추는 방법입니다. – nixeagle
'(= (길이 (cons 2 3) 2))''는 = (length (cons 2 3)) 2)'이어야합니다. – ffriend