Вы могли бы использовать встроенные формы Racket вместо:
Вместо (dolist (x some-list) body-forms ...)
, вы можете написать (for ((x some-list)) body-forms ...)
вместо (dotimes (i n) body-forms ...)
,Вы можете использовать (for ((i (in-range 0 n))) body-forms ...)
или даже просто (for ((i n)) body-forms ...)
, если n
является неотрицательным целым числом.
Вы можете написать макросы синтаксических правил для преобразования циклов в стиле CL в стиль Racketте, но это, вероятно, не стоит того.for
-формы Racket сами по себе более гибкие, чем dotimes
или dolist
, поскольку вы можете легко использовать их для итерации нескольких последовательностей одновременно.