Інтерпретатор muLisp, Детальна інформація
Інтерпретатор muLisp
— знак. Він містить один з наступних символів, які характеризують тип числа:
додатне від’ємне $ (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.
додатне від’ємне $ (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
© Referats, Inc · All rights reserved 2021