Реферат: АвтоЛИСП - реализация языка программирования
1 1 1
Каждый бит <int1> имеет пару соответствующего бита <int2>, выбирая один горизонтальный ряд истинностной таблицы. Бит результата или ноль, или 1, в зависимости от установки бита <func>, соответствующего этому ряду истиностной таблицы. Если соответствующий бит задан в <func>, бит результата 1, в противном случае бит результата - 0.
Некоторые значения для <func> эквивалентны стандартным булевым операциям AND, OR, XOR и NOT. Они представлены ниже:
Функция Операция Бит результата 1,если...
-------------------------------------------------------
1 AND оба входных бита - 1
6 XOR только один из двух входных битов - 1
7 OR любой или оба из входных битов
8 NOT оба входных бита - 0 (чье-то дополнение)
Например:
(Boole 1 12 5)
определяет логическое AND для значений 12 и 5. Результат 4. Аналогично:
(Boole 6 6 5)
определяет логическое XOR для значений 6 и 5,в результате - 3.
Вы можете применять другие значения <func> для выполнения других булевых операций, для которых эти имена не являются стандартными. Например, если <func> - 4 , биты результата заданы, если заданы соответствующие биты в <int2>, но не в <int1>. Таким образом:
(Boole 4 3 14)
введет 12.
4.27 (boundp <atom>)
Эта функция вводит T, если <atom> имеет значение, близкое к нему (не взирая на контекст). Если же нет значения, близкого к <atom> (или если оно близко к нулю), вводится ноль. Например, заданы назначения:
(setq a 2)
(setq b nil)
тогда:
(boundp 'a) вводит T
(doundp 'b) вводит nil
4.28 caar, cadr, cddr, cadar, etc.
АвтоЛИСП обеспечивает связь CAR и CDR до четырех уровней вглубь. Например, задано назначение:
(setq x '((a b) c d))
тогда:
(caar x ) эквивалентно (car (car x)) вводит A