ВУЗ:
Составители:
Рубрика:
11
АТОМ? и EQ? являются базовыми предикатами Лиспа. С их помощью и
используя другие базовые функции, можно задать более сложные предикаты, которые
будут проверять наличие более сложных свойств.
Предикат АТОМ? проверяет, является ли аргумент атомом
При работе с выражениями необходимо иметь возможность проверить,
является ли выражение атомом или списком. Это может потребоваться, например,
перед применением функций CAR и CDR, так как эти функции определены лишь для
аргументов, являющихся списками. Базовый предикат АТОМ? используется для
идентифицирования лисповских объектов, являющихся атомами:
(АТОМ? s-выражение)
Значением вызова АТОМ? будет Т, если аргументом является атом, и () — в
противном случае:
[0] (atom? 'x)
#T
[1] (atom? '(a b c))
()
[2] (atom? '(Я программирую - следовательно существую))
()
[3] (atom? (cdr '(a b c)))
()
[4] (atom? (car '(a b c)))
#T
[5] (atom? (+ 5 6))
#T
С помощью предиката АТОМ? можно убедиться, что пустой список NIL, или (),
является атомом:
[0] (atom? nil)
#T
[1] (atom? 'nil)
#T
[2] (atom? ())
#T
[3] (atom? '(nil))
()
[4] (atom? (atom? (+ 2 3)))
#T
[5] (atom? (atom? '(+ 2 3)))
#T
[6] (atom? '(atom? (+ 2 3)))
()
В Лиспе существует целый набор предикатов, проверяющих тип являющегося
аргументом выражения или любого другого лисповского объекта и таким образом
идентифицирующих используемый тип данных.
11 АТОМ? и EQ? являются базовыми предикатами Лиспа. С их помощью и используя другие базовые функции, можно задать более сложные предикаты, которые будут проверять наличие более сложных свойств. Предикат АТОМ? проверяет, является ли аргумент атомом При работе с выражениями необходимо иметь возможность проверить, является ли выражение атомом или списком. Это может потребоваться, например, перед применением функций CAR и CDR, так как эти функции определены лишь для аргументов, являющихся списками. Базовый предикат АТОМ? используется для идентифицирования лисповских объектов, являющихся атомами: (АТОМ? s-выражение) Значением вызова АТОМ? будет Т, если аргументом является атом, и () — в противном случае: [0] (atom? 'x) #T [1] (atom? '(a b c)) () [2] (atom? '(Я программирую - следовательно существую)) () [3] (atom? (cdr '(a b c))) () [4] (atom? (car '(a b c))) #T [5] (atom? (+ 5 6)) #T С помощью предиката АТОМ? можно убедиться, что пустой список NIL, или (), является атомом: [0] (atom? nil) #T [1] (atom? 'nil) #T [2] (atom? ()) #T [3] (atom? '(nil)) () [4] (atom? (atom? (+ 2 3))) #T [5] (atom? (atom? '(+ 2 3))) #T [6] (atom? '(atom? (+ 2 3))) () В Лиспе существует целый набор предикатов, проверяющих тип являющегося аргументом выражения или любого другого лисповского объекта и таким образом идентифицирующих используемый тип данных.
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »