1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

Use explicit guile-primitive forms in the macro expansion of dotimes and dolist.

This commit is contained in:
Daniel Kraft 2009-07-30 21:49:00 +02:00
parent e6042c08b7
commit bfd472a7d3

View file

@ -121,9 +121,9 @@
(if (not (symbol? var))
(macro-error "expected symbol as dotimes variable"))
`(let ((,var 0))
(while (< ,var ,count)
(while ((guile-primitive <) ,var ,count)
,@body
(setq ,var (1+ ,var)))
(setq ,var ((guile-primitive 1+) ,var)))
,@(if (= (length args) 3)
(list (caddr args))
'()))))))
@ -142,10 +142,11 @@
`(let (,var)
(without-void-checks (,tailvar)
(lexical-let ((,tailvar ,iter-list))
(while (not (null ,tailvar))
(setq ,var (car ,tailvar))
(while ((guile-primitive not)
((guile-primitive null?) ,tailvar))
(setq ,var ((guile-primitive car) ,tailvar))
,@body
(setq ,tailvar (cdr ,tailvar)))
(setq ,tailvar ((guile-primitive cdr) ,tailvar)))
,@(if (= (length args) 3)
(list (caddr args))
'())))))))))