aboutsummaryrefslogtreecommitdiff
path: root/lib.macros.lisp
AgeCommit message (Collapse)Author
2025-02-14Prefix all packages with `cantedraw`Aryadev Chavali
This is mostly a sanity check in-case anyone else decides to load this system for use in their own package - don't want to conflict with their names.
2025-02-14Use := instead of = so we're not re-interning a symbol in cl-loopAryadev Chavali
2025-02-11Rework `$` operator to work like applicative in HaskellAryadev Chavali
f $ g $ h -> f(g(h)) whereas previous implementation ($ f g h) was h(g(f)).
2025-02-11Macro (alist-val) to access the actual value of a key in an alistAryadev Chavali
2025-02-11Implement `$` operator, second class version of the applicative operatorAryadev Chavali
The `$` operator takes a sequence of FORMS and returns a unary function which applies the input through that sequence via the `->>` operator. For example, consider the predicate "not null". `null` is built into Common Lisp but "not null" requires writing a function (lambda (x) (not (null x))). Now, using this operator, you can write ($ not null) which returns the same lambda as above while being more concise.
2025-02-11functions -> forms in lib.macrosAryadev Chavali
2025-02-11Add type alias for function and macro for defining functions with type specifierAryadev Chavali
`fn' is a convenience macro for defining functions with a type specifier. Only really matters for `sbcl` and other hard-optimising Lisp interpreters which actually take these seriously.
2025-02-11Implement a `while' macro.Aryadev Chavali
2025-02-11Implement threading macros and make package lib.macros to hold them.Aryadev Chavali