This commit is contained in:
Kartik Agaram 2021-06-06 19:03:41 -07:00
parent e962a53f9a
commit e941dd505c
1 changed files with 18 additions and 0 deletions

View File

@ -51,6 +51,24 @@
(afn . [(mac (afn params . body)
`(let self ()
(set self (fn ,params ,@body))))])
(seq . [(def (seq n)
((afn (i)
(if (> i n)
()
(cons i (self (+ i 1)))))
1))])
(each . [(mac (each x xs . body)
`(walk ,xs (fn (,x) ,@body)))])
(walk . [(def (walk xs f)
(when xs
(f (car xs))
(walk (cdr xs) f))) ])
(up . [(mac (up var init max . body)
`(for ,var ,init (<= ,var ,max) (++ ,var)
,@body))])
(down . [(mac (down var init min . body)
`(for ,var ,init (>= ,var ,min) (-- ,var)
,@body))])
(rem . [(def (rem f xs)
(if (no xs)
()