Adds more macro examples

This commit is contained in:
sloum 2022-06-21 23:01:16 -07:00
parent 88c860b1b7
commit f7b1f98ac0
1 changed files with 12 additions and 0 deletions

View File

@ -11,12 +11,24 @@
(eval ['lambda [] ['if test (list-join ['begin] ... [['el]])]]))
(el)))
(define when
(macro (test ...)
(eval ['if test (cons 'begin ...)])))
(define unless
(macro (test ...)
(eval ['if ['not test] (cons 'begin ...)])))
(define do-count (lambda (count lam)
(for-each lam (range count))))
(define x -5)
(while (< x 5) (display-lines x) (set! x (+ x 1)))
(when (> x 0) (display "X is " x " (which is greater than 0)\n") (display "Yay!\n"))
(unless (< x 0) (display "X is " x "(which is greater than 0)\n") (display "Yay!\n"))
(do-count 5 (lambda (x) (display-lines (+ x 1))))
(display-lines (let ((a 12)(b 3)) (+ a b)))