나는 하나에 결합 할 다음이 개 기능이 : 난 그냥 하나의 기능을하고 싶은재귀
(defun fib (n)
(if (= n 0) 0 (fib-r n 0 1)))
(defun fib-r (n a b)
(if (= n 1) b (fib-r (- n 1) b (+ a b))))
을, 그래서 나는이 같은 시도 :
(defun fib (n)
(let ((f0 (lambda (n) (if (= n 0) 0 (funcall f1 n 0 1))))
(f1 (lambda (a b n) (if (= n 1) b (funcall f1 (- n 1) b (+ a b))))))
(funcall f0 n)))
을
그러나 이것은 작동하지 않습니다. 정확한 오류는 *** - IF: variable F1 has no value
입니다. 저는 LISP가 시작되는 한 초보자입니다. 다음 질문에 대한 명확한 답을 고맙게 생각합니다. lisp에서 재귀 람다 함수를 작성하는 방법은 무엇입니까?
감사합니다.
감사합니다. –
http://stackoverflow.com/suggested-edits/113745 – thirtydot