ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »