Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close
                                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).

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.