Введение в программирование на Лиспе

         

Циклы


Работа с циклами обеспечена в Лиспе достаточно традиционно.

(loop <форма>...)

Базовая форма цикла, представляющая собой встроенную функцию, многократно вычисляющую свои аргументы – тело цикла – до тех пор, пока на будет выполнен какой-либо явный выход из цикла, такой как RETURN.

(do(<параметры>...)(<предикат > < результат >...) < форма >...) (do*(<параметры >...)(<предикат > < результат >...) < форма >...)

Обобщенные формы цикла, отличающиеся правилом связывания параметров цикла – независимо и последовательно.

(dolist (<переменная > < список > [<результат >] ) < форма >...)

Цикл, перебирающий список выражений, поочередно присваиваемых переменной цикла.

(dotimes (<переменная > < число > [<результат >] ) < форма >...)

Цикл, работающий заданное число шагов от 0 до N-1

< параметры > задаются как списки вида

(<переменная> <начальное_значение> [<шаг>] ) в котором: < переменная > - символ с исходным значением Nil. < начальное_значение > - начальное значение параметра. < шаг > - выражение для вычисления параметра на каждом шаге цикла <предикат> - ограничитель цикла <результат> - результирующее выражение (при отсутствии - NIL) <форма> - тело цикла, работает как неяная форма prog.

Значение дает последнее результирующее выражение.



Содержание раздела