Среда программирования на AutoLISP в графической системе AutoCAD (Справочник), страница 5

(logior <число> <число>...)

возвращает результат действия побитового ИЛИ над списком <чисел>.<Числа> должны быть целыми, результат также целое число.

(lsh <число1> <число бит>)

возвращает побитовый сдвиг <числа1> на <число бит>. <Число1> и <число бит> должны быть целыми, результат также целое. Если <число бит> положительно, то <число1> сдвигается влево; если отрицательно, то – вправо. В каждом случае “нулевые” биты добавляются, а сдвигаемые биты сбрасываются.

(bolee <функция> <целое1> <целое2>...)

основная битовая функция. <Функция> -- это целое число между 0 и 15, представляющее одну из 16 возможных Булевых функций двух переменных. Эта функция побитового (логически) комбинирует целочисленные аргументы в соответствии с таблицей, приведённой ниже.

Каждый бит <целого1> берётся совместно с соответствующим битом <целого2>. В зависимости от кода функции, результирующий бит будет либо 0, либо 1. Некоторые значения <функции> эквивалентны стандартным Булевым операциям И, ИЛИ, НЕ:

1 функция И

6 функция исключающее ИЛИ

7 функция ИЛИ

8 функция дополнение до 1 (НЕ)

3.5.Функция обработки строк

(strcase <строка> [<признак>])

возвращает копию <строки>, переведя все символы алфавита в верхний или нижний регистр в зависимости от аргумента <признак>. Если <признак> опущен или равен nil, то все символы алфавита в <строке> будут переведены в нижний регистр.

(strcat <строка1> [<строка2>]...)

возвращает строку, которая является результатом сцепления <строки1>, <строки2> и т.д.

(strlen [<строка>])

возвращает длину строковых констант <строка> (в символах) как целую величину.

(substr <строка> <начало> [<длина>])

возвращает подстроку <строки>, начинающуюся с символа, номер которого указан в аргументе <начало> и содержащую число символов, заданное в аргументе <длина>. Если <длина> не указана, то подстрока продолжается до конца <строки>. <Начало> и <длина>, если последняя отсутствует, должны быть положительными целыми величинами. Первый символ <строки> имеет номер 1.

(wcmatch <строка> <шаблон>)

Если <строка> удовлетворяет <шаблону>, то возвращается Т, иначе – nil. Сравнивается не более 500 символов.

Следующие символы имеют специальное значение при их использовании в <шаблоне>:

# _______один любой цифровой символ;

@_______ один любой алфавитный символ;

.________ один любой не алфавитно-цифровой символ;

*________последовательность любых символов, включая пустую;

?________один любой символ;

~________ может стоять первым символам в шаблоне и означает, что шаблоном является всё, кроме шаблона, стоящего за ~;

[...]______любой одиночный символ из заключённых в скобки;

[~...]_____любой символ, кроме заключённых в скобки;

________используется внутри скобок, для задания диапазонов символов;

________ разделяет два шаблона;

________ позволяет использовать в шаблоне вышеперечисленные символы литерально (например ’~).

3.6. Функции управления порядком выполнения

(if <тест-выражение>

 <выражение - тогда>[<выражение - иначе>])

исполняет выражение по условию. Если <тест-выражение> не nil, выполняется <выражение - тогда>, иначе выполняется <выражение - иначе>.<Выражение - иначе> не обязательно. IF возвращает значение выбранного выражения; если <выражение - иначе>отсутствует и <тест-выражение> nil, IF возвращает nil.

(cond (<тест> <результат>...)...)

воспринимает любое число подсписков в качестве аргументов. Функция вычисляется по очереди первый элемент (<тест>) каждого подсписка до тех пор, пока не встретится элемент отличный от nil. Затем вычисляется найденное выражение, <результат>, возвращает вычисленное значение. Если в подсписке только одно выражение (т.е. <результат> отсутствует), возвращается значение выражения <тест>.