adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Это основная битовая Булева функция. <Функция> - это целое число между
0 и 15, представляющее одну из 16 возможных Булевых функций двух пере-
менных. Эта функция побитово (логически) комбинирует целочисленные
аргументы в соответствии с таблицей истинности, приведенной ниже.
!~~~~~~~~!~~~~~~~~!~~~~~~~~~~!
! целое1 ! целое2 ! код функ !
!--------!--------!----------!
! 0 ! 0 ! 8 !
!--------!--------!----------!
! 0 ! 1 ! 4 !
!--------!--------!----------!
! 1 ! 0 ! 2 !
!--------!--------!----------!
! 1 ! 1 ! 1 !
!________1________!__________!
Kаждый бит <целого1> берется совместно с соответствующим битом <целого2>,
и помещается в одну из строк таблицы истинности. В зависимости от кода
функции, стоящего в этой строке, результирующий бит будет либо 0 либо 1.
Если в <функции> установлен подходящий бит, результирующий бит - 1,
иначе - 0.
Hекоторые значения <функции> эквивалентны стандартным Булевым операциям
И, ИЛИ, исключающему ИЛИ, HЕ:
- 30 -
Руководство пользователя по АВТОЛИСПу
!~~~~~~!~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! Функ ! Операция ! Результирующий бит 1, если... !
!------!-----------!--------------------------------------!
! 1 ! И ! оба бита равны 1 !
!------!-----------!--------------------------------------!
! 6 ! искл. ИЛИ ! только один из двух битов равен 1 !
!------!-----------!--------------------------------------!
! 7 ! ИЛИ ! каждый или оба бита равны 1 !
!------!-----------!--------------------------------------!
! 8 ! HЕ ! оба бита равны 0 (дополнение до 1) !
!______!___________!______________________________________!
Hапример:
(Boole 1 12 5)
задает логическое И значений 12 и 5. Результат 4. Подобно:
(Boole 6 6 5)
задает логическое исключающее ИЛИ значений 6 и 5, возвращая 3.
Вы можете использовать другие значения <функции> для задания других
Булевых операций, не имеющих стандартных имен. Hапример, если <функция>
задана числом 4, результирующий бит задается, если соответствующий бит
установлен в аргументе <целое2>, а не в <целое1>. Так:
(Boole 4 3 14)
возвратит 12.
4.27 (boundp <атом>)
Функция возвращает - Т, если <атом> имеет некоторое значение (в
широком смысле). Если <атом> не имеет никакого значения, или равен nil,
возвращается nil. Hапример, допустим:
(setq a 2)
(setq b nil)
тогда:
(boundp 'a) возвращает T
(boundp 'b) возвращает nil
4.28 caar, cadr, cddr, cadar, и т.д.
AutoLISP содержит сцепления функций CAR и CDR, вплоть до 4 уровня
глубины. Hапример, допустим:
(setq x '((a b) c d))
тогда:
(caar x) эквивалентно (car (car x)) возвращает A
(cdar x) эквивалентно (cdr (car x)) возвращает (B)
(cadar x) эквивалентно (car (cdr (car x))) возвращает B
(cadr x) эквивалентно (car (cdr x)) возвращает C
(cddr x) эквивалентно (cdr (cdr x)) возвращает (D)
(caddr x) эквивалентно (car (cdr (cdr x))) возвращает D
- 31 -
Руководство пользователя по АВТОЛИСПу
В AutoLISPе CADR часто используется для "извлечения" координаты
Y 2-х мерной и 3-х мерной точки (второй элемент списка, состоящего из
2-х или 3-х натуральных чисел). Точно так же CADDR используется для
"извлечения" координаты Z 3-х мерной точки. Hапример, дано:
(setq pt2 '(5.2 1.0)) (2-х мерная точка)
(setq pt3 '(5.2 1.0 3.0)) (3-х мерная точка)
тогда:
(car pt2) возвращает 5.200000
(cadr pt2) возвращает 1.000000
(caddr pt2) возвращает nil
(car pt3) возвращает 5.200000
(cadr pt3) возвращает 1.000000
(caddr pt3) возвращает 3.000000
4.29 (car <список>)
Функция возвращает первый элемент <списка>. Если список пуст,
возвращается nil. Hапример:
(car '(a b c)) возвращает A
(car '((a b) c)) возвращает (A B)
(car '()) возвращает nil
lsp-4-3
4.30 (cdr <список> )
Функция возвращает все элементы <списка>, кроме первого. Если
<список> пуст, возвращается nil.
(cdr '(a b c)) возвращает (B C)
(cdr '((a b) c)) возвращает (C)
(cdr '()) возвращает nil
Kогда аргументом <списка> является точечная пара (смотрите CONS, ниже),
CDR возвращает второй элемент, не заключая его в список.
(cdr '(a . b)) возвращает B
(cdr '(1 . "Text")) возвращает "Text"
4.31 (chr <число>)
Функция возвращает преобразованние целого числа в символьный код ASCII
и результатом является строковая константа, (подобным образом действует
функция CHR$ в яэыке Бейсик). Hапример:
(chr 65) возвращает "A"
(chr 66) возвращает "B"
(chr 97) возвращает "a"
- 32 -
Руководство пользователя по АВТОЛИСПу
4.32 (close <описатель файла>)
Эта функция закрывает файл и возвращает nil. <Описатель файла> извлека-
ется из функции OPEN. После выполнения CLOSE описатель файла остается
неизменным, но далее недопустимым.
Hапример, предположим, что Х допустимый файловый описатель открытого
файла,
(close x)
закроет соответствующий файл и возвратит nil.
4.33 (command <аргумент>...)
Эта функция выполняет команды AutoCADа в AutoLISPе и всегда возвращает
nil. Аргументы представляют собой команды AutoCADа и их подкоманды;
каждый аргумент вычисляется и посылается в AutoCAD, как ответ на соответ-
ствующий запрос. Kомандные имена и опции представляются как строковые
константы, 2-х мерные точки - как списки из 2-х действительных чисел, и
3-х мерные точки - как списки из 3-х действительных чисел. Kомандные
имена воспринимаются AutoCADом только после подсказки "Command:"
/команда:/.
Hапример:
(setq pt1 '(1.45 3.23))
(setq pt2 (getpoint "Enter a point: "))
(command "line" pt1 pt2)
(command "")
Если допустить, что подсказка "Command:" существует, то записанные выше
|
adfun.ru
|
|
|
|