我有以下2個功能,我想結合成一個:遞歸在lambda函數
(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中編寫遞歸lambda函數?
謝謝。
謝謝,工作。 –
http://stackoverflow.com/suggested-edits/113745 – thirtydot