Учебники

LISP — основной синтаксис

Программы 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'! "

Добавление комментариев

Точка с запятой (;) используется для обозначения строки комментария.

Например,

Live Demo

(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 и введите в него следующий код.

Live Demo

(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 выполняет его немедленно, и возвращается результат —