スキームで for ループを定義する方法に何が問題なのか疑問に思っています。for ステートメントを実行しようとすると、かなり長い間実行されてからクラッシュします。
(define-syntax for
(syntax-rules (:)
[(_ (initial : test : update) body)
(begin initial
(if test
(begin body update
(for [test : update] body))))]
[(_ (test : update) body)
(if test
(begin body update
(for [test : update] body)))]))
初期条件を実行し、テストをチェックし、本体を実行してから、次の実行にループする必要があります。