Параметрические изображения объектов проектирования на основе использования языка АВТОЛИСП в среде АВТОКАД. Притыкин Ф.Н. - 48 стр.

UptoLike

Составители: 

48
(cond (<тест1> <результат1> ...) (<тест2> <результат2> ...) ...).
Эта функция в качестве аргументов использует списки, число которых
может быть любым. Функция cond просматривает поочередно элементы
списка, каждый из которых состоит из функции, задающей <тест>, и
функции, задающей результат. Если в каком-либо из первых элементов
списка функция <тест> окажется не nil, то функция cond вычисляет вы-
ражение <результат>, следующее за тестом, и возвращает значение этого
выражения в этом подсписке. Например, если <тест1> nil, <тест2>
nil, <тест3> не nil , то функция cond возвращает <результат3>. Если
не один из тестов не является истинным, тo функция возвращает nil. Реко-
мендуется в качестве последнего теста использовать символ T(true). То-
гда, если все предыдущие условия не выполняются, результатом функции
будет выражение, соответствующее символу Т.
Пример: пусть необходимо, какой-либо переменной ss задать значение
1, если пользователь на запрос системы указывает символ "Y" или "y". В
случае, если пользователь указывает символ "N" или "n", переменная ss
задает значение 0. Тогда, задавая запрос пользователя в символ s, функ-
ция cond проверяет с помощью тестов (= s "Y"), ( = s "y"), ( = s "N"), ( =
s "n") значения s и возвращает соответствующий результат переменной ss.
(setq ss (cond ((= s "Y") 1)
(( = s "y") 1)
(( = s "N") 0)
(( = s "n") 0)
(t nil.)
)
)
Если пользователь на запрос системы ответил "N", то результатом
первых двух тестов (= s "Y") и (= s "y") двух элементов списков будет
nil, поэтому элементы списков результат1 и результат2 не выполняют-
ся. Результатом теста3 в третьем элементе списка (( = s "N") 0) будет не
nil, поэтому функция cond выполняет результат3 и возвращает перемен-
ной ss значение 0.
Функция (сons <новый элемент> <список>) выбирает <новый
элемент>, помещает его в начало списка и возвращает новый список с
     • (cond (<тест1> <результат1> ...) (<тест2> <результат2> ...) ...).
Эта функция в качестве аргументов использует списки, число которых
может быть любым. Функция cond просматривает поочередно элементы
списка, каждый из которых состоит из функции, задающей <тест>, и
функции, задающей результат. Если в каком-либо из первых элементов
списка функция <тест> окажется не nil, то функция cond вычисляет вы-
ражение <результат>, следующее за тестом, и возвращает значение этого
выражения в этом подсписке. Например, если <тест1> → nil, <тест2> →
nil, <тест3> → не nil , то функция cond возвращает <результат3>. Если
не один из тестов не является истинным, тo функция возвращает nil. Реко-
мендуется в качестве последнего теста использовать символ T(true). То-
гда, если все предыдущие условия не выполняются, результатом функции
будет выражение, соответствующее символу Т.
     Пример: пусть необходимо, какой-либо переменной ss задать значение
1, если пользователь на запрос системы указывает символ "Y" или "y". В
случае, если пользователь указывает символ "N" или "n", переменная ss
задает значение 0. Тогда, задавая запрос пользователя в символ s, функ-
ция cond проверяет с помощью тестов (= s "Y"), ( = s "y"), ( = s "N"), ( =
s "n") значения s и возвращает соответствующий результат переменной ss.
  (setq ss (cond ((= s "Y") 1)
                    (( = s "y") 1)
                    (( = s "N") 0)
                    (( = s "n") 0)
                    (t nil.)
             )

   )

      Если пользователь на запрос системы ответил "N", то результатом
первых двух тестов (= s "Y") и (= s "y") двух элементов списков будет
nil, поэтому элементы списков результат1 и результат2 не выполняют-
ся. Результатом теста3 в третьем элементе списка (( = s "N") 0) будет не
nil, поэтому функция cond выполняет результат3 и возвращает перемен-
ной ss значение 0.
      • Функция (сons <новый элемент> <список>) выбирает <новый
элемент>, помещает его в начало списка и возвращает новый список с
                                   48