curly
Curly is set of two reader macros for easy function currying and composition. It was inspired Arc's syntax for currying, using square brackets. Curly creates anonymous functions (lambdas) with literal function composition instead of trying smarter approach (like using (REDUCE #'FUNCALL ...)) so that the compiler is able to do more optimizations.

Examples of Curly usage:

CURLY> '[foo] (LAMBDA (#:G2705) (FOO #:G2705)) CURLY> '[foo bar] (LAMBDA (#:G2706) (FOO BAR #:G2706)) CURLY> '[foo bar * baz] (LAMBDA (#:G2709) (FOO BAR #:G2709 BAZ)) CURLY> '{foo bar} (LAMBDA (#:G2714) (FOO (BAR #:G2714))) CURLY> '{foo bar baz} (LAMBDA (#:G2715) (FOO (BAR (BAZ #:G2715)))) CURLY> '{foo (bar 23) baz quux} (LAMBDA (#:G2721) (FOO (BAR 23 (BAZ (QUUX #:G2721))))) CURLY> '{foo (bar 16) (baz 23 * 42) quux} (LAMBDA (#:G2724) (FOO (BAR 16 (BAZ 23 (QUUX #:G2724) 42)))

Latest version of Curly can be obtained on its GitHub page: https://github.com/mpasternacki/curly


convenience library