Парадигмы программирования

Синтаксическая сводка подмножества языка


<форма> ::= <переменная> | (QOUTE <данное>) --- константа | (IF <предикат> <форма> <форма>) --- условное выражение | (<функция> <аргумент> ... <аргумент>) --- вызов функции
<предикат> ::= <форма> <аргумент> ::= <форма> <переменная> ::= <идентификатор>
<функция> ::= <название> --- ранее определенная функция | (LAMBDA <список_переменных> <форма>) --- безымянная функция | (LABEL <название> <функция>) --- рекурсивная функция
<список_переменных> ::= (<переменная> ... )
<название> ::= <идентификатор> <идентификатор> ::= <атом>
Листинг 2.1. Синтаксическая сводка подмножества языка Лисп
Закрыть окно




<форма> ::= <константа> | <переменная> | (<функция> <аргумент> ... >) | (IF <предикат> <форма> <форма> )
<константа> ::= (QOUTE <данное>)
<переменная> ::= <идентификатор>
<аргумент> ::= <форма>
<предикат> ::= <форма>
Пример 2.2. Синтаксис выражений подмножества языка Лисп
Закрыть окно




<функция> ::= <название> | (LAMBDA <список_переменных> <форма>) | (LABEL <название> <функция>)
<список_переменных> ::= (<переменная> ... )
<название> = <идентификатор>
Пример 2.3. Синтаксис функций подмножества языка Лисп
Закрыть окно



Содержание раздела