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:
parent
e6042c08b7
commit
bfd472a7d3
1 changed files with 6 additions and 5 deletions
|
@ -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))
|
||||
'())))))))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue