aboutsummaryrefslogtreecommitdiff
path: root/packages.lisp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-10 07:14:05 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-11 00:40:19 +0000
commitb29855047be9a172d570db71600425b2b06a8a59 (patch)
tree2f09081b3408b516ac417778957b9f6e327442e8 /packages.lisp
parentc5d98886410d46838e5863066edf37e544a72456 (diff)
downloadcantedraw-b29855047be9a172d570db71600425b2b06a8a59.tar.gz
cantedraw-b29855047be9a172d570db71600425b2b06a8a59.tar.bz2
cantedraw-b29855047be9a172d570db71600425b2b06a8a59.zip
Implement `$` operator, second class version of the applicative operator
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.
Diffstat (limited to 'packages.lisp')
-rw-r--r--packages.lisp3
1 files changed, 2 insertions, 1 deletions
diff --git a/packages.lisp b/packages.lisp
index aff5b68..d50945b 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -22,7 +22,8 @@
(:export
:_ :--> :->>
:while
- :-> :fn))
+ :-> :fn
+ :$))
(defpackage lib.functions
(:use :cl :lib.macros)