From e80d0339a7ef9b029bded8fe86719f5d52b33ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 20 Apr 2020 02:15:16 +0200 Subject: Add ->> macro. --- module/util.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'module') diff --git a/module/util.scm b/module/util.scm index dbbc1bf7..c7535310 100644 --- a/module/util.scm +++ b/module/util.scm @@ -12,7 +12,7 @@ quote? re-export-modules use-modules* - -> set set-> aif awhen + -> ->> set set-> aif awhen tree-map let-lazy let-env case* define-many and=>> @@ -458,6 +458,15 @@ [(-> obj func rest ...) (-> (func obj) rest ...)])) +(define-syntax ->> + (syntax-rules () + ((->> obj) + obj) + ((->> obj (func args ...) rest ...) + (->> (func args ... obj) rest ...)) + ((->> obj func rest ...) + (->> (func obj) rest ...)))) + ;; Non-destructive set, syntax extension from set-fields from (srfi ;; srfi-9 gnu). Also doubles as a non-destructive mod!, if the `=' ;; operator is used. -- cgit v1.2.3