On Wed, Aug 31, 2022 at 5:29 PM Maxime Devos <maximede...@telenet.be> wrote:
> > On 31-08-2022 09:01, Damien Mattei wrote: > > I always try to keep compatibility with RnRS and in fact except cond > > none of when, unless, cond, case, while, and do are in standart RnRS > schem > > 'when', 'unless' and 'do' are actually RnRS, see (rnrs control). > oh your're right...i was sticked to R5RS ,time i was student... > > 'case' is also RnRS, see (rnrs base). > > However, looking at (guile)while do, 'while' is indeed non-standard. > and i had rewritten last week a 'while ... do' like in C or Pascal: https://www.tutorialspoint.com/pascal/pascal_while_do_loop.htm https://www.tutorialspoint.com/cprogramming/c_while_loop.htm in my Scheme+: ;; (define do '()) ;; (while {i < 4} ;; do ;; (display i) ;; (newline) ;; {i <- {i + 1}}) ;; 0 ;; 1 ;; 2 ;; 3 ;; $1 = #f (define-syntax while (syntax-rules (while do) ((_ pred do b1 ...) (let loop () (when pred b1 ... (loop)))))) i will have to forget it! as i want to keep compatibility with standard Scheme also but i will rewrite all with (let () ...) instead of (begin ...) unless it can cause some incompatibilities, for now , i do not see problems as "who can do more can do less"...... Regards, Damien > >