Інтерпретатор muLisp, Детальна інформація

Інтерпретатор muLisp
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 13.9
Скачувань: 1005
— знак. Він містить один з наступних символів, які характеризують тип числа:

додатне від’ємне $ (CDR 5.6) $ (CAR 5.6)

мале NIL T MACRO 5.6

велике LAMBDA NLAMBDA $ (CDR 1212) $ (CDR -121212)

дробове MACRO SPECIAL NIL NLAMBDA

Значення атрибута знака доступне як CDR-елемент числа.

— довжина. Якщо число є малим цілим, то цей атрибут містить значення цілого. Якщо число — велике ціле, то елемент ‘довжина’ містить довжину слова вектора числа. Якщо число дробове — елемент містить вказівник на його чисельник, який обов’язково повинен бути цілим (додатним або від’ємним).

— вектор. Якщо число мале ціле, то значення атрибута є вказівником на інше мале ціле (хеш-з’єднувач). Якщо число велике ціле, то це поле містить вказівник на найменший значущий байт. Якщо число дробове — елемент містить вказівник на його знаменник, який повинен бути додатним цілим числом.

Функція порівняння EQL може використовуватися для порівняння чисел. Але більш загальною функцією для порівняння множини чисел є рівність:

$ (EQL -3 4) $ (EQL 4 4) $ (= 2 2 2) $ (= 2 2 3 2)

NIL T T NIL

Дробові числа можуть подаватися у десятковому вигляді та з дробовою рискою. Внутрішня змінна *PRINT-POINT* відповідає за тип виведення дробових чисел. Якщо вона дорівнює NIL, то всі дробові числа подаються на виведення з дробовою рискою. Якщо *PRINT-POINT* = n, то дробові числа виводяться з n знаками після десяткової коми. При введенні дробового числа воно автоматично скорочується.

$ ѕ $ 3/9 $ 5/1 $ 12/9

3/4 1/3 5 4/3

Внутрішня змінна *PRINT-BASE* відповідає за основу системи числення, в якій обробляються числа. Якщо значення цієї змінної є цілим та перебуває в інтервалі від 2 до 32, то такою і буде основа системи числення, інакше muLisp працює в десятковій системі числення.

$ (SETQ ten 10) $ (SETQ *PRINT-BASE* 2) $ 234

$ (SETQ *PRINT-BASE* 16) $ ten 11101010

$ ten 1010

0A

Функцією, яка розпізнає цілі числа, є INTEGERP. Вона повертає Т, якщо її аргумент є цілим числом та NIL інакше. Функція NUMBERP розпізнає число.

$ (INTEGERP 100) $ (INTEGERP 3.5)

T NIL

$ (NUMBERP 3.5) $ (NUMBERP 4/5)

T T

Число в подвійних лапках завжди є символом:

$ (SYMBOLP “23”) $ (NUMBERP “23”)

T NIL

Символи та числа є атомами. Наступні вирази повертають істину:

(ATOM 3.5), (ATOM “23”), (ATOM ‘APPLE).

Конс є примітивним об’єктом, який вказує на будь-які два інші об’єкти даних. Він не є атомом. Назва конс пішла від функції конструктора CONS. Кожен конс склада- ється з CAR- та CDR- елементів. Конс часто називають точковою парою. Якщо X і Y об’єкти даних, то вираз (X . Y) є консом, CAR-елемент якого є X, а CDR-елемент – Y.

The online video editor trusted by teams to make professional video in minutes