나는 재귀 적 계승 함수를위한 매우 간단한 lisp 코드를 작성하고 있습니다. 숫자를 사용하여 호출하면 제대로 작동합니다. 그러나 번호 (예 : a)가 아닌 무언가를 사용하여 호출하려고하면 다음 오류가 표시됩니다.간단한 LISP 코드가 입력 오류를 catch하지 않습니다.
오류 : 언 바운드 변수 'A'의 값을 가져 오려고 시도합니다. [조건 유형 : UNBOUND-VARIABLE]
그러나 이것은 내 코드에서 발견 된 것으로 간주됩니다. 여기 내 코드는 다음과 같습니다.
(defun FactorialRec (num)
(cond
((not(numberp num))
(princ "Argument must be a number.")
(terpri)
())
((equal num 1) ;base case
1)
((<= 1 num) (* num(FactorialRec (- num 1))))
)
)
나는 왜 이것이 numberp가 이것을 잡지 못하는지 알 수 없습니다. 어떤 아이디어? 감사.
고맙습니다. 저는 이런 일이 부주의 한 일이 일어나서 쓰고 익숙해지고 있습니다. 그래서 A는 lisp로 평가 될 수 없다. – iltp21
@ amaliat21, 나는 Barmar가 이미 그것을 아주 잘 도입했다고 생각합니다. – Marcus