Я пишу небольшой интерпретатор для C-подобного языка в Scheme (R5RS) и пытаюсь преобразовать что-то вроде:
for (i = 0; i < 100; i++)
{
if (isprime(i)) continue;
else /* do something with i */
}
в правильную Scheme (функция isprime является лишь примером, а неважный).
Однако, пытаясь некоторое время, я не смог найти эффективный / простой способ добавить эквивалент оператора continue в цикл do в Scheme.Что было бы еще лучше, так это макрос «for», который позволяет использовать «continue» и «break».
Я подумываю о переходе на Common Lisp.Разве это было бы проще в CL?