diff options
Diffstat (limited to 'lib/macro.fnl')
| -rw-r--r-- | lib/macro.fnl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/macro.fnl b/lib/macro.fnl new file mode 100644 index 0000000..f23b1fb --- /dev/null +++ b/lib/macro.fnl @@ -0,0 +1,18 @@ +(fn map [f l] + `(icollect [i# v# (ipairs ,l)] + (,f i# v#))) + +(fn filter [f l] + `(icollect [i# v# (ipairs ,l)] + (if (,f i# v#) + v# + nil))) + +(fn reduce [f l s] + `(accumulate [r# ,s + i# v# (ipairs ,l)] + (,f i# v# r#))) + +{: map + : filter + : reduce} |
