Feuilles de root

Logiciels libres, programmation et économie

Accueil » Programmation » Programmation Scheme » Boucles en Scheme

Boucles en Scheme

Les structures de contrôle while, repeat-until et for qui existent dans la plupart des langages de programmation, sont absentes de Scheme. Elles sont remplacées par des appels de fonction récursifs. Il est toutefois possible de définir ces constructions à l'aide de macros.

Macro pour une boucle while

(define-syntax while
    (syntax-rules ()
        ((_ pred b1 ...)
            (let loop () (when pred b1 ... (loop))))
        )
    )

Macro pour une boucle for

(define-syntax for
    (syntax-rules ()
        ((_ (i from to) b1 ...)
            (let loop ((i from))
                (when (< i to)
                    b1 ...
                    (loop (+ 1 i))
                    )
                )
            )
        )
    )