ВУЗ:
Составители:
Рубрика:
22
...
)
Первый аргумент описывает внутренние переменные var1, var2, …, их
начальные значения знач1, знач2, ... и формы их обновления шаг1, шаг2, ... .
Вычисление начинается с присвоения начальных значений переменным. Если
начальное значение не задано, переменной присваивается NIL. При каждой итерации
цикла после этого вычисляется условие окончания. Если оно истинно, вычислются
формы форма1N, значение последней из которых является значением всего выражения
DO. Если ложно, то вычисляются формы форма2N, переменным varN присваиваются
значения форм шагN, и опять проверяется условие окончания цикла, и т.д.
[0] (DEFINE a)
A
[1] (do ((a 1 (+ a 1))) ((= a 10) a))
10
ВВОД И ВЫВОД
Ввод и вывод входят в диалог
До сих пор в определенных нами функциях ввод данных (READ) и вывод
(PRINT) осуществлялись в процессе диалога с интерпретатором. Интерпретатор читал
вводимое пользователем выражение, вычислял его значение и возвращал его
пользователю. Сами формы и функции не содержали ничего, связанного с вводом и
выводом.
Если не использовать специальную команду ввода, то данные можно
передавать лисповской функции только через параметры и свободные переменные.
Соответственно, без использования вывода, результат можно получить лишь через
конечное значение выражения. Часто все же возникает необходимость вводить
исходные данные и выдавать сообщения и тем самым управлять и получать
промежуточные результаты во время вычислений, как это делается и в других языках
программирования.
READ читает и возвращает выражение
Лисповская функция чтения READ отличается от ввода в других языках
программирования тем, что она обрабатывает выражение целиком, а не одиночные
элементы данных. Вызов этой функции осуществляется пользователем (немного
упрощенно) в виде:
(READ)
Как только интерпретатор встречает предложение READ, вычисления
приостанавливаются до тех пор, пока пользователь не введет какой-нибудь символ
или целиком выражение:
[0] (read)
(вводимое выражение)
(ВВОДИМОЕ ВЫРАЖЕНИЕ)
[1]
22 ... ) Первый аргумент описывает внутренние переменные var1, var2, …, их начальные значения знач1, знач2, ... и формы их обновления шаг1, шаг2, ... . Вычисление начинается с присвоения начальных значений переменным. Если начальное значение не задано, переменной присваивается NIL. При каждой итерации цикла после этого вычисляется условие окончания. Если оно истинно, вычислются формы форма1N, значение последней из которых является значением всего выражения DO. Если ложно, то вычисляются формы форма2N, переменным varN присваиваются значения форм шагN, и опять проверяется условие окончания цикла, и т.д. [0] (DEFINE a) A [1] (do ((a 1 (+ a 1))) ((= a 10) a)) 10 ВВОД И ВЫВОД Ввод и вывод входят в диалог До сих пор в определенных нами функциях ввод данных (READ) и вывод (PRINT) осуществлялись в процессе диалога с интерпретатором. Интерпретатор читал вводимое пользователем выражение, вычислял его значение и возвращал его пользователю. Сами формы и функции не содержали ничего, связанного с вводом и выводом. Если не использовать специальную команду ввода, то данные можно передавать лисповской функции только через параметры и свободные переменные. Соответственно, без использования вывода, результат можно получить лишь через конечное значение выражения. Часто все же возникает необходимость вводить исходные данные и выдавать сообщения и тем самым управлять и получать промежуточные результаты во время вычислений, как это делается и в других языках программирования. READ читает и возвращает выражение Лисповская функция чтения READ отличается от ввода в других языках программирования тем, что она обрабатывает выражение целиком, а не одиночные элементы данных. Вызов этой функции осуществляется пользователем (немного упрощенно) в виде: (READ) Как только интерпретатор встречает предложение READ, вычисления приостанавливаются до тех пор, пока пользователь не введет какой-нибудь символ или целиком выражение: [0] (read) (вводимое выражение) (ВВОДИМОЕ ВЫРАЖЕНИЕ) [1]
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »