Ну вот мы и приступаем к освоению логических функций.
И первая функция =, которая проверяет равенство аргументов.
Может использоваться для проверки не только чисел, но и строк. (= < аргумент 1> [<аргумент2>]…..N). Может оперировать любыми
типами аргументов. Возвращаемое значения : логическое Т
(истина), если аргументы совпали и nil, если не совпали.
Если задан только один аргумент
вернет Т. Если количество аргументов более 2, то при совпадении значений
вернет Т, а если хотя бы один из
аргументов отличается, вернет nil.
( = 16.0
16 16.000) – вернет Т, так как
значение всех аргументов совпадает. Несмотря на то, что два аргумента при этом
имеет вещественное значение.
(= 2)
–вернет Т
( = 2 10) – вернет nil.
( = женя женя) – вернет Т.
Следующая функция /=, которая проверяет неравенство всех
аргументов. Таже используется для чисел
или строк. Тип аргументов любые . Такой
же синтаксис, как и у =. Возвращает Т,
только, если аргументы не равны и nil, если равны.
Примеры:
(/= 10) вернет Т
( /= 11 11.0) вернет nil
(/= 10 11) вернет Т
Следующая функция <. Проверяет
аргументы по возрастанию. Проверяет слева на право.
(< < аргумент 1> [<аргумент2>]…..N. Тип возвращаемого значения только логическое. Тип аргумента
числа, как целые так и вещественные, а также строки.
Примеры:
( < 20) вернет Т, так как один аргумент
(< -20 0) вернет Т, так как аргументы расположены по
возрастанию.
(< 1 1 2) вернет nil, так как два первых
аргумента равны.
Функция <=. Проверяет расположение аргументов не по
убыванию. Тип аргумента вещественные и
целые числа, а так же строки. Тип
возвращаемого значения логическое.
Возвращает Т, если аргументы расположены не по убыванию и nil – в любом другом случае.
Примеры:
( <= -2) вернет Т, так как
один аргумент
(<= -50 0) вернет Т
(<= 1 1 2)
вернет Т, сравните с примерами с функцией <. Возвращает Т несмотря на то,
что первые два аргумента равны.
Функция >. Проверяет
расположение аргументов по убыванию. Как и в предыдущих случаях, проверка идет
слева на право. Тип аргументов, как целые числа так и
вещественные, а так же, как обычно строки.
Примеры:
(> 10) вернет Т, так как один
аргумент.
(> - 5 0) вернет
nil, так как аргументы
расположены по возрастанию, а не по убыванию
( > 1 1 2) вернет nill , так как аргументы
расположены не по убыванию.
Функция and. Похожа с операцией
логического И. Тип аргумента любые. Возвращает
значение Т, если значение всех аргументов истина. И nil во всех
остальных случаях. Если аргументы не
заданы или только один аргумент, то
вернет Т.
Примеры:
(and 20) вернет
Т, так как один аргумент.
(and nil T T ) вернет nil, так как один из аргументов равен nil
(and
10 T T ) вернет Т, так как все аргументы равны истине.
Функция or выполняет логическую операцию или. Работает с
любыми типами аргументов. Тип
возвращаемого значения Т, если хотя бы один аргумент имеет истинное значения и nil, если все аргументы имеют
ложное значения.
Примеры:
(or
5) вернет Т
(or nil T T) вернет Т (сравните с
функцией and)
(or 10 T T) вернет Т.
Функция null выполняет
поверку аргумента на nil
. ( null <аргумент>).
Тип аргумента может иметь любое значение.
Возвращает Т, если аргумент равен nil, и nil,
если равен.
Обычно применяется для
проверки не пустого списка.
Примеры:
(null
Т) – возвращает nil, так как список
не пуст
(null nil) – возвращает Т, так
как есть nil
(null
() ) - возвращает Т, та как
список пуст.
Функция minusp, предназначена для проверки числа на отрицательность. Тип
аргумента целое или вещественное число. Возвращает значение Т, если число
отрицательно, и nil – в случае если число
положительное.
Примеры:
(minusp 10) – возвращает nil, так как число положительное
(minusp – 5.1) –
вернет Т, так как число отрицательное.
Функция zerop, предназначена для проверки числа
на предмет равенства нулю. Тип аргумента
целое или вещественное число. Вернет Т, если аргумент равен нулю и nil, если не равен.
Примеры:
(zerop 0) –
вернет Т.
(zerop 10) – вернет nil, причем такой же будет результат
если аргумент будет равен – 10
Функция vl-consp, предназначена для проверки аргумента на предмет не
является ли он пустым списком точечной парой или точечным списком.
Примеры:
(vl-consp (1 2 3))
вернет Т
(vl-consp ()) вернет nil -список пуст.
Функция Listp – очень важная
функция в языке AutoLisp,
предназначена для построения споисков, а также для проверки является ли
аргумент списком. Тип аргумента любой. Вернет Т, если аргумент является списком
и nil, если нет.
Примеры:
(Listp 10) –вернет nil
(listp (1 2 3)) –вернет Т
(listp nil) – вернет Т, сам не знаю
почему.
И последняя функция boundp, предназначена для
проверки присвоено ли значение переменной.
Тоже важная функция. Тип
аргумента любой. Возвращает Т, если значение символу присвоено
и nil, если значение не
задано или равно nil.
Как вы поняли, логические функция в ЛИСП предназначены для
проверки условий. В принципе программирование на этом и строится. Если вы
будете создавать сложные программы с циклами, то знать логические функции
необходимо. В следующем посту речь как раз и пойдет о циклах.
Комментариев нет:
Отправить комментарий