Зворотний зв'язок

Примітивні об’єкти даних

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

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

$ (SETQ *PRINT-BASE* 16)$ ten11101010

$ ten1010

0A

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

$ (INTEGERP 100)$ (INTEGERP 3.5)

TNIL

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

TT

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

$ (SYMBOLP "23")$ (NUMBERP "23")

TNIL

Символи та числа є атомами. Наступні вирази повертають істину: (ATOM 3.5), (ATOM "23"), (ATOM ‘APPLE).

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

$ (SETQ A (cons X Y))$ (CAR A)$ (CDR A)$ (CDR ‘(R . S))

$ AXYS

(X . Y)

За допомогою точкового подання можна показати структуру будь-якого об’єкту. Список (x1 x2 x3) є ланцюгом консів, які зв’язані за допомогою CDR- елементів. Його CAR- елементи вказують на елементи списку. CDR- елемент останнього конса вказує на NIL. Вказаний список можна подати у вигляді (x1 . (x2 . (x3 . NIL))). Функція READ читання виразу розпізнає як точкове подання виразу, так і спискове. Функція виведення PRINT виводить об’єкти в списковому поданні.

$ (SETQ a ‘(q . (w . nil))$ a$ (CONSP ‘(q . w))$ (CONSP (q w))

(q w)(q w)TT

Функція (CONSP obj) розпізнає конси. Список не є примітивним об’єктом, а є ланцюгом консів. Отже, результатом застосування функції CONSP до списку буде Т.


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат