https://github.com/stylewarning/recur
https://github.com/stylewarning/recur
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/stylewarning/recur
- Owner: stylewarning
- License: other
- Created: 2023-04-09T22:09:13.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-04-09T22:23:07.000Z (about 3 years ago)
- Last Synced: 2025-10-27T08:59:09.331Z (8 months ago)
- Language: Common Lisp
- Size: 1.95 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.txt
- License: LICENSE
Awesome Lists containing this project
README
RECUR
A simple library for Scheme's named LET.
RECUR is a simple Lisp alternative Scheme's "named-LET". Scheme allows
one to iterate like the following:
(define (factorial n)
(let fact ((n n)
(prod 1))
(if (zero? n)
prod
(fact (- n 1)
(* n prod)))))
This is a useful idiom for Lisp as well. With this library, it is written
(defun factorial (n)
(recur fact ((n n)
(prod 1))
(if (zerop n)
prod
(fact (1- n)
(* n prod)))))
This library exports a single macro, RECUR:RECUR, which is a
replacement for Scheme's named-LET. The only caveat is that tail
recursion is not strictly supported, though many implementations do
support it (with some combination of OPTIMIZE declarations).