Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
16
Task/Anonymous-recursion/TXR/anonymous-recursion.txr
Normal file
16
Task/Anonymous-recursion/TXR/anonymous-recursion.txr
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
(defmacro recursive ((. parm-init-pairs) . body)
|
||||
(let ((hidden-name (gensym "RECURSIVE-")))
|
||||
^(macrolet ((recurse (. args) ^(,',hidden-name ,*args)))
|
||||
(labels ((,hidden-name (,*[mapcar first parm-init-pairs]) ,*body))
|
||||
(,hidden-name ,*[mapcar second parm-init-pairs])))))
|
||||
|
||||
(defun fib (number)
|
||||
(if (< number 0)
|
||||
(error "Error. The number entered: ~a is negative" number)
|
||||
(recursive ((n number) (a 0) (b 1))
|
||||
(if (= n 0)
|
||||
a
|
||||
(recurse (- n 1) b (+ a b))))))
|
||||
|
||||
(put-line `fib(10) = @(fib 10)`)
|
||||
(put-line `fib(-1) = @(fib -1)`))
|
||||
Loading…
Add table
Add a link
Reference in a new issue