Программы LISP состоят из трех основных строительных блоков —
-
атом
-
список
-
строка
атом
список
строка
Атом — это число или строка смежных символов. Он включает в себя цифры и специальные символы.
Ниже приведены примеры некоторых допустимых атомов:
hello-from-tutorials-point name 123008907 *hello* Block#221 abc123
Список — это последовательность атомов и / или других списков, заключенных в скобки.
Ниже приведены примеры некоторых действительных списков:
( i am a list) (a ( a b c) d e fgh) (father tom ( susan bill joe)) (sun mon tue wed thur fri sat) ( )
Строка — это группа символов, заключенная в двойные кавычки.
Ниже приведены примеры некоторых допустимых строк:
" I am a string" "a ba c d efg #$%^&!" "Please enter the following details :" "Hello from 'Tutorials Point'! "
Добавление комментариев
Точка с запятой (;) используется для обозначения строки комментария.
Например,
(write-line "Hello World") ; greet the world ; tell them your whereabouts (write-line "I am at 'Tutorials Point'! Learning LISP")
Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат —
Hello World I am at 'Tutorials Point'! Learning LISP
Некоторые заметные моменты, прежде чем перейти к следующему
Ниже приведены некоторые важные моменты, на которые следует обратить внимание.
-
Основные числовые операции в LISP: +, -, * и /
-
LISP представляет вызов функции f (x) как (fx), например, cos (45) записывается как cos 45
-
Выражения LISP нечувствительны к регистру, потому что 45 или COS 45 одинаковы.
-
LISP пытается оценить все, включая аргументы функции. Только три типа элементов являются константами и всегда возвращают свое значение
-
чисел
-
Буква t, которая обозначает логическую истину.
-
Значение nil, которое обозначает логическое false, а также пустой список.
-
Основные числовые операции в LISP: +, -, * и /
LISP представляет вызов функции f (x) как (fx), например, cos (45) записывается как cos 45
Выражения LISP нечувствительны к регистру, потому что 45 или COS 45 одинаковы.
LISP пытается оценить все, включая аргументы функции. Только три типа элементов являются константами и всегда возвращают свое значение
чисел
Буква t, которая обозначает логическую истину.
Значение nil, которое обозначает логическое false, а также пустой список.
Немного больше о формах LISP
В предыдущей главе мы упоминали, что процесс оценки кода LISP состоит из следующих шагов.
-
Читатель переводит строки символов в объекты LISP или s-выражения.
-
Оценщик определяет синтаксис форм Lisp, которые построены из s-выражений. Этот второй уровень оценки определяет синтаксис, который определяет, какие s-выражения являются формами LISP.
Читатель переводит строки символов в объекты LISP или s-выражения.
Оценщик определяет синтаксис форм Lisp, которые построены из s-выражений. Этот второй уровень оценки определяет синтаксис, который определяет, какие s-выражения являются формами LISP.
Теперь формы LISP могут быть.
-
Атом
-
Пустой или не список
-
Любой список, который имеет символ в качестве первого элемента
Атом
Пустой или не список
Любой список, который имеет символ в качестве первого элемента
Оценщик работает как функция, которая принимает допустимую форму LISP в качестве аргумента и возвращает значение. По этой причине мы помещаем выражение LISP в круглые скобки, потому что мы отправляем все выражение / форму в качестве аргументов в оценщик.
Соглашения об именах в LISP
Имя или символы могут состоять из любого количества буквенно-цифровых символов, кроме пробелов, открытых и закрывающих скобок, двойных и одинарных кавычек, обратной косой черты, запятой, двоеточия, точки с запятой и вертикальной черты. Чтобы использовать эти символы в имени, вам нужно использовать escape-символ (\).
Имя может иметь цифры, но не полностью состоять из цифр, потому что тогда оно будет читаться как число. Точно так же имя может иметь периоды, но не может быть целиком составлено из периодов.
Использование одинарных кавычек
LISP оценивает все, включая аргументы функции и члены списка.
Иногда нам нужно воспринимать атомы или списки буквально, и мы не хотим, чтобы они оценивались или обрабатывались как вызовы функций.
Чтобы сделать это, нам нужно поставить перед кавычкой атом или список.
Следующий пример демонстрирует это.
Создайте файл с именем main.lisp и введите в него следующий код.
(write-line "single quote used, it inhibits evaluation") (write '(* 2 3)) (write-line " ") (write-line "single quote not used, so expression evaluated") (write (* 2 3))
Когда вы нажимаете кнопку «Выполнить» или нажимаете Ctrl + E, LISP выполняет его немедленно, и возвращается результат —