Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


¬ыполнение работы. Ћисп обычно используетс€ в режиме интерпретации




Ћисп обычно используетс€ в режиме интерпретации. »нтерпретатор Ћиспа функционирует следующим образом: когда пользователь заканчивает ввод какого-либо выражени€, интерпретатор вычисл€ет и выдает значение этого выражени€. –ассмотрим простейший пример. ¬ведите в окне FreeLisp Listener следующее выражение и нажмите клавишу enter:

CL-USER 1 > 3

ћы ввели число 3, которое €вл€етс€ атомом и, следовательно, s-выражением. »нтерпретатор Ћиспа вычисл€ет значение этого s-выражени€ и выдает результат. ќн совпадает с введенным выражением, поскольку значением числа €вл€етс€ само это число. ¬ведем следующее выражение:

CL-USER 2 > (+ 2 5); s-выражение

7; результат

ѕри вычислении s-выражений интерпретатор Ћиспа следует следующим правилам:

1. ≈сли s-выражение число, то значением этого выражени€ €вл€етс€ само это число.

2. ≈сли s-выражение список, то значени€ всех аргументов, исключа€ первый, вычисл€ютс€, а затем передаютс€ как аргументы в функцию, обозначенную первым символом.

Ќапример, при вычислении значени€ выражени€
(* (+ 1 2) (- 4 3)) интерпретатор вначале вычислит значени€ первого и второго аргументов функции Ђ*ї. ѕервый и второй аргументы €вл€ютс€ списками. ¬ каждом из этих списков аргументы €вл€ютс€ числами. «начением числа €вл€етс€ само это число. „исла 1 и 2 передаютс€ в качестве аргументов в функцию Ђ+ї. „исла 4 и 3 передаютс€ в качестве аргументов в функцию Ђ-ї. «атем результаты вычислени€ первого и второго выражений
(3 и 1) передаютс€ в качестве аргументов в функцию Ђ*ї.

 

ѕока что мы не рассмотрели как вычисл€ютс€ s-выражени€, которые €вл€ютс€ символами. ≈сли мы зададим следующее символьное выражение, то получим сообщение об ошибке.

CL-USER 3 > A

Error: The variable A is unbound

—имволы можно использовать как переменные. ¬ этом случае они могут обозначать некоторые выражени€. ” символов изначально нет какого-нибудь значени€ как у констант. ¬ нашем примере интерпретатор не может вычислить значение символа, поскольку его у символа нет. —в€жем переменную A с каким-либо значением, использу€ функцию setf:

CL-USER 4 > (setf A 3)

“еперь, когда мы св€зали значение с переменной A, интерпретатор позволит нам вычислить значение s-выражение:

CL-USER 5 > A

ћы можем использовать переменную A в более сложном s-выражении:

CL-USER 6 > (+ A A)

–ассмотрим еще несколько примеров применени€ описанных выше функций:

CL-USER 7 > quote (+ 2 5)

(+ 2 5)

ќбратите внимание на использование функции quote, котора€ просто возвращает переданный ей аргумент. јналогом функции quote €вл€етс€ символ Т.

CL-USER 8 > Т(+ 2 5)

(+ 2 5)

CL-USER 9 > (+ 2 5)

 

Ќекоторые примеры использовани€ функций работы со списками:

CL-USER 10 > (car Т(1 2 3))

CL-USER 11 > (cdr Т(1 2 3))

(2 3)

CL-USER 12 > (nth 1 Т(1 2 3)); нумераци€ с нул€

CL-USER 13 > (first Т(1 2 3))

CL-USER 14 > (list 1 2 3)

(1 2 3)

CL-USER 15 > (cons 1 Т(2 3))

(1 2 3)





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-10-01; ћы поможем в написании ваших работ!; просмотров: 406 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

ƒва самых важных дн€ в твоей жизни: день, когда ты по€вилс€ на свет, и день, когда пон€л, зачем. © ћарк “вен
==> читать все изречени€...

1291 - | 1194 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.008 с.