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