summaryrefslogtreecommitdiff
path: root/lib/macro.fnl
blob: f23b1fbe4bf311b68add4af98f8d03fc9dbb15d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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}