summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_const.lisp
diff options
context:
space:
mode:
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)))
;