русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

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


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Выполнение работы


Дата добавления: 2015-08-31; просмотров: 649; Нарушение авторских прав


Лисп обычно используется в режиме интерпретации. Интерпретатор Лиспа функционирует следующим образом: когда пользователь заканчивает ввод какого-либо выражения, интерпретатор вычисляет и выдает значение этого выражения. Рассмотрим простейший пример. Введите в окне FreeLisp Listener следующее выражение и нажмите клавишу enter:

CL-USER 1 > 3

Мы ввели число 3, которое является атомом и, следовательно, s-выражением. Интерпретатор Лиспа вычисляет значение этого s-выражения и выдает результат. Он совпадает с введенным выражением, поскольку значением числа является само это число. Введем следующее выражение:

CL-USER 2 > (+ 2 5) ; s-выражение

7 ; результат

При вычислении s-выражений интерпретатор Лиспа следует следующим правилам:

1. Если s-выражение число, то значением этого выражения является само это число.

2. Если s-выражение список, то значения всех аргументов, исключая первый, вычисляются, а затем передаются как аргументы в функцию, обозначенную первым символом.

Например, при вычислении значения выражения
(* (+ 1 2) (- 4 3)) интерпретатор вначале вычислит значения первого и второго аргументов функции «*». Первый и второй аргументы являются списками. В каждом из этих списков аргументы являются числами. Значением числа является само это число. Числа 1 и 2 передаются в качестве аргументов в функцию «+». Числа 4 и 3 передаются в качестве аргументов в функцию «-». Затем результаты вычисления первого и второго выражений
(3 и 1) передаются в качестве аргументов в функцию «*».

 

Пока что мы не рассмотрели как вычисляются s-выражения, которые являются символами. Если мы зададим следующее символьное выражение, то получим сообщение об ошибке.

CL-USER 3 > A

Error: The variable A is unbound

Символы можно использовать как переменные. В этом случае они могут обозначать некоторые выражения. У символов изначально нет какого-нибудь значения как у констант. В нашем примере интерпретатор не может вычислить значение символа, поскольку его у символа нет. Свяжем переменную A с каким-либо значением, используя функцию setf:



CL-USER 4 > (setf A 3)

Теперь, когда мы связали значение с переменной A, интерпретатор позволит нам вычислить значение s-выражение:

CL-USER 5 > A

Мы можем использовать переменную A в более сложном s-выражении:

CL-USER 6 > (+ A A)

Рассмотрим еще несколько примеров применения описанных выше функций:

CL-USER 7 > quote (+ 2 5)

(+ 2 5)

Обратите внимание на использование функции quote, которая просто возвращает переданный ей аргумент. Аналогом функции quote является символ ’.

CL-USER 8 > ’(+ 2 5)

(+ 2 5)

CL-USER 9 > (+ 2 5)

 

Некоторые примеры использования функций работы со списками:

CL-USER 10 > (car ’(1 2 3))

CL-USER 11 > (cdr ’(1 2 3))

(2 3)

CL-USER 12 > (nth 1 ’(1 2 3)) ; нумерация с нуля

CL-USER 13 > (first ’(1 2 3))

CL-USER 14 > (list 1 2 3)

(1 2 3)

CL-USER 15 > (cons 1 ’(2 3))

(1 2 3)



<== предыдущая лекция | следующая лекция ==>
Среда FreeLisp | Задание на лабораторную работу


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.641 сек.