Урок 10. Циклы в LISP

LISP   17 декабря 2012  Автор статьи:  

Бывают моменты, когда рекурсия не очень удобна, тогда следует применять циклы. Рассмотрим сначала классический цикл на основе оператора do:

(do
(
(переменная-по-которой-будет-пущен-цикл начальное-значение следующий-шаг);может быть много переменных
)
(
(условие-выхода)
результат-который-нужно-возвратить
)
(операторы-которые-будут-выполнятся-на-каждом-шаге-цикла)
)

Конечно может быть для первого раза данный код выглядит чутка сложно, но давайте реализуем функцию, которая будет в переменную sum складывать значения с 0 до 10:

(setq sum 0);0
(do
( ( i 1 (+ i 1)))
( (> i 10) sum)
(setq sum (+ sum i)));55

Менее массивны, и не являются хорошим тоном использование следующих функций:
Бесконечный цикл:

(loop do действие)

Цикл for:

(loop for i from 1 to 10 do действие)

Научиться программировать

  • на Delphi

  • на Java

  • на C++