i finalize my ideas about 'controls' and loops (with break and continue, as while feature them ,even if scheme and macro do not allow ? (if someone else have idea and solution about it?) implements of 'continue and 'break because hygiene forbid it)
;; scheme@(guile-user)> (for/break-cont break continue ({i <+ 0} {i < 5} {i <- {i + 1}}) {x <+ 7} (display x) (newline))
;; 7
;; 7
;; 7
;; 7
;; 7
;; scheme@(guile-user)> (for/break-cont break continue ({i <+ 0} {i < 5} {i <- {i + 1}}) {x <+ 7} (display x) (newline) (break))
;;7
;; scheme@(guile-user)> (for/break-cont break continue ({i <+ 0} {i < 5} {i <- {i + 1}}) {x <+ 7} (continue) (display x) (newline) (break))
(define-syntax for/break-cont
(syntax-rules ()
((_ <break-id> <continue-id> (init test incrmt) b1 ...)
(call/cc (lambda (<break-id>)
(let ()
init
(let loop ()
(when test
(call/cc (lambda (<continue-id>) b1 ...))
incrmt
(loop)))))))))
https://github.com/damien-mattei/library-FunctProg/blob/master/for-next-step.scm
Damien