информационно-новостной портал
Главная / Статьи / Информатика / Программирование /

Представление функциональных программ в виде S-выражений.

Одним из способов представления формулы в виде S-выражения является язык Scheme. В языке scheme не различаются строчные и прописные буквы, идентификатором является любая последовательность букв. цифр и спецсимволов, не начинающаяся с цифры.

Группа

Абстрактная форма

Scheme

1

2

3

Переменные

X

X

Константы

‘X

‘(1 2 3 )

10, 1.25

#T, #F

‘X или (QUOTE X)

‘(1 2 3)

10, 1.25

#T, #F

Арифметические операции

x+y, x-y, x*y, x/y

-x,x^y, xmod y

(+ X Y), (- X Y), (* X Y), (/ X Y),

(-X), (EXPT X Y),(REMAINDER X Y)

Сравнения

x=y, x¹y

x<y, x>y

x³y, x£y

(= X Y), (NOT (= X Y)),

(< X Y), (> X Y),

(>= X Y), (<= X Y)

Логические операции

не x, x и y

x или y

(NOT X), (AND X Y)

(OR X Y)

Обработка списков

car(x), cdr(x),cons(x,y), atom(x), eq(x,y), null(x), number(x)

(CAR X), (CDR X), (CONS X Y), (NOT (PAIR? X)), (EQ? X Y), (NULL? X), (NUMBER? X).

Вызов функции

f(x1,x2,..,xn)

(F X1 X2..XN)

Условное предложение

если e1 то e2 иначе e3

(IF E1 E2 E3)

Блоки локальных определений

{e где x1=e1..}

{пусть x1=e1.. в e}

{e гдерек x1=e1..}

{пустьрек x1=e1.. в e}

(LET (X1 E1)..(XK EK)) E)

 

(LETREC((X1 E1)..(XK EK)) E)

l-выражения

l(x1,x2..xn)=e

(LAMBDA (X1 X2..XN) E)

Определения

f(x1,x2,..,xn)=e

g=e

(DEFINE (F X1…XN) E)

(DEFINE G E)

Отложенные вычисления

Задержать x

Возобновить x

(DELAY X)

(FORCE X)

Просмотров: 806 | Дата добавления: 08.02.2016