summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_const.lisp
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-11-25 17:29:10 -0800
committerKeith Packard <keithp@keithp.com>2017-11-25 17:29:10 -0800
commit00bf2ca86b60e6501880011897cea073865c5a03 (patch)
treed7125e77052843a32000d5aef631b3054f20aba5 /src/lisp/ao_lisp_const.lisp
parent5f9f97cc2d43936d1941da3a9a130c279bc70b99 (diff)
altos/lisp: Rename progn to begin
Match scheme name. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_const.lisp')
-rw-r--r--src/lisp/ao_lisp_const.lisp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/lisp/ao_lisp_const.lisp b/src/lisp/ao_lisp_const.lisp
index 9fb7634c..f8a70979 100644
--- a/src/lisp/ao_lisp_const.lisp
+++ b/src/lisp/ao_lisp_const.lisp
@@ -25,7 +25,7 @@
(set (quote define) (macro (name val rest)
(list
- 'progn
+ 'begin
(list
'set
(list 'quote name)
@@ -520,6 +520,26 @@
'(54 0 37 -3 245 19))
#t))
+(define repeat (macro (count rest)
+ (list
+ let
+ (list
+ (list '__count__ count))
+ (append
+ (list
+ while
+ (list
+ <=
+ 0
+ (list
+ set!
+ '__count__
+ (list
+ -
+ '__count__
+ 1))))
+ rest))))
+
;(define number->string (lexpr (arg opt)
; (let ((base (if (null? opt) 10 (car opt)))
;