Выражения LISP называются символическими выражениями или s-выражениями. S-выражения состоят из трех допустимых объектов, атомов, списков и строк.
Любое s-выражение является допустимой программой.
Программы LISP запускаются либо на интерпретаторе, либо в виде скомпилированного кода.
Интерпретатор проверяет исходный код в повторяющемся цикле, который также называется циклом чтения-оценки-печати (REPL). Он читает код программы, оценивает его и печатает значения, возвращаемые программой.
Простая программа
Напишем s-выражение, чтобы найти сумму трех чисел 7, 9 и 11. Для этого мы можем набрать в приглашении интерпретатора.
(+ 7 9 11)
LISP возвращает результат —
27
Если вы хотите запустить ту же программу, что и скомпилированный код, создайте файл исходного кода LISP с именем myprog.lisp и введите в него следующий код.
(write (+ 7 9 11))
Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат —
27
LISP использует префиксную нотацию
Вы могли заметить, что LISP использует префиксную нотацию.
В вышеприведенной программе символ + работает как имя функции для процесса суммирования чисел.
В префиксной записи операторы записываются перед операндами. Например, выражение,
a * ( b + c ) / d
будет написано как —
(/ (* a (+ b c) ) d)
Давайте возьмем другой пример, напишем код для преобразования температуры по Фаренгейту 60 ° F в градус Цельсия —
Математическое выражение для этого преобразования будет —
(60 * 9 / 5) + 32
Создайте файл исходного кода с именем main.lisp и введите в него следующий код.
(write(+ (* (/ 9 5) 60) 32))
Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет ее немедленно, и возвращается результат:
140
Оценка программ LISP
Оценка программ LISP состоит из двух частей —
-
Перевод текста программы в объекты Lisp программой чтения
-
Реализация семантики языка в терминах этих объектов программой оценки
Перевод текста программы в объекты Lisp программой чтения
Реализация семантики языка в терминах этих объектов программой оценки
Процесс оценки состоит из следующих шагов:
-
Читатель переводит строки символов в объекты LISP или s-выражения.
-
Оценщик определяет синтаксис форм Lisp, которые построены из s-выражений. Этот второй уровень оценки определяет синтаксис, который определяет, какие s-выражения являются формами LISP.
-
Оценщик работает как функция, которая принимает допустимую форму LISP в качестве аргумента и возвращает значение. По этой причине мы помещаем выражение LISP в круглые скобки, потому что мы отправляем все выражение / форму в качестве аргументов в оценщик.
Читатель переводит строки символов в объекты LISP или s-выражения.
Оценщик определяет синтаксис форм Lisp, которые построены из s-выражений. Этот второй уровень оценки определяет синтаксис, который определяет, какие s-выражения являются формами LISP.
Оценщик работает как функция, которая принимает допустимую форму LISP в качестве аргумента и возвращает значение. По этой причине мы помещаем выражение LISP в круглые скобки, потому что мы отправляем все выражение / форму в качестве аргументов в оценщик.
Программа «Hello World»
Изучение нового языка программирования не будет успешным, пока вы не научитесь приветствовать весь мир на этом языке, верно!
Поэтому, пожалуйста, создайте новый файл исходного кода с именем main.lisp и введите в него следующий код.
(write-line "Hello World") (write-line "I am at 'Tutorials Point'! Learning LISP")
Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат —