ВУЗ:
Составители:
Рубрика:
13
и то же число, но записываются внешне неодинаково. Для различия видов и степеней
равенства в Лиспе наряду с EQ? используются и другие предикаты.
EQV? сравнивает числа разных типов
Более общим по сравнению с EQ? является предикат EQV?, который работает
так же, как ЕО?, но дополнительно позволяет сравнивать числа разных типов (и
элементы строк).
[0] (eqv? 3 3)
#T
[1] (eqv? 3.14 3.14)
#T
[2] (eqv? 3.104 3.104)
#T
[3] (eqv? 3.00 3)
#T
[4] (eqv? 'a 'a)
#T
[5] (eqv? '(a b c) '(a b c))
()
Предикат EQV?, как правило, используется во многих встроенных функциях,
осуществляющих более сложные операции сравнения. Его использование для
сравнения списков- это часто встречающаяся ошибка.
Предикат = сравнивает числа различных типов
Сложности, возникающие при сравнении чисел, легко преодолимы с помощью
предиката =, значением которого является Т в случае равенства чисел независимо от их
типов и внешнего вида записи:
[6] (= 3.000 3)
#T
[7] (= 3.000 3.000000)
#T
[8] (= 3.010 3.000000)
()
EQUAL? проверяет идентичность записей
Обобщением EQV? является предикат EQUAL? Он работает как EQV?, но,
кроме того, проверяет одинаковость двух списков:
[0] (equal? 'x 'x)
#T
[1] (equal? '(x y z) '(x y z))
#T
[5] (equal? '(x y z) (cons 'x (cdr '(w y z))))
#T
[6] (equal? 3.12 3.12)
#T
[7] (equal? 3.00 3)
()
13
и то же число, но записываются внешне неодинаково. Для различия видов и степеней
равенства в Лиспе наряду с EQ? используются и другие предикаты.
EQV? сравнивает числа разных типов
Более общим по сравнению с EQ? является предикат EQV?, который работает
так же, как ЕО?, но дополнительно позволяет сравнивать числа разных типов (и
элементы строк).
[0] (eqv? 3 3)
#T
[1] (eqv? 3.14 3.14)
#T
[2] (eqv? 3.104 3.104)
#T
[3] (eqv? 3.00 3)
#T
[4] (eqv? 'a 'a)
#T
[5] (eqv? '(a b c) '(a b c))
()
Предикат EQV?, как правило, используется во многих встроенных функциях,
осуществляющих более сложные операции сравнения. Его использование для
сравнения списков- это часто встречающаяся ошибка.
Предикат = сравнивает числа различных типов
Сложности, возникающие при сравнении чисел, легко преодолимы с помощью
предиката =, значением которого является Т в случае равенства чисел независимо от их
типов и внешнего вида записи:
[6] (= 3.000 3)
#T
[7] (= 3.000 3.000000)
#T
[8] (= 3.010 3.000000)
()
EQUAL? проверяет идентичность записей
Обобщением EQV? является предикат EQUAL? Он работает как EQV?, но,
кроме того, проверяет одинаковость двух списков:
[0] (equal? 'x 'x)
#T
[1] (equal? '(x y z) '(x y z))
#T
[5] (equal? '(x y z) (cons 'x (cdr '(w y z))))
#T
[6] (equal? 3.12 3.12)
#T
[7] (equal? 3.00 3)
()
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »
