Vergleichsoperatoren
Aus ProgrammingWiki
Archivierte Version vom 2010-10-10T07:33:57+00:00. Aktuelle Version
Um strukturierte numerische bzw. nichtnumerische Daten vergleichen zu können, bietet Scheme Vergleichsoperatoren (Prädikate) mit verschiedenen Wichtungen an:
equal? / eqv? / eq?
Gleich, gleicher, am gleichesten
Mit den folgenden Prozeduren testen wir diese Vergleichsoperatoren:
<eval id="4cb16c64ea764"> (vergleich '((3 . 3) </eval>
(4.0 . 4)
((* 3 3) . 9)
(3/2 . (+ 1 1/2))
(2/3 . 4/6)
((* (sqrt 2) (sqrt 2)) . 2.0)
(#\a . #\a)
(#t . #t)
("B" . "B")
('informatik . 'INFORMATIK)
(((lambda (x) (* x x)) (sqrt 2)) . (* (sqrt 2) (sqrt 2)))
((cons 1 (list 2)) . (list 1 2))
('(1 2 a b c d 3 4). '(1 2 a b c d 3 4))
('(1 2 (a (b (c)) d) 3 4). '(1 2 (a (b (c)) d) 3 4))))Zusammenfassung
Die Vergleichsoperatoren geben den Wert #t zurück, wenn ...
| equal? "gleich" |
... die Operanden in Datentyp, Struktur und Inhalt gleich sind, |
| eqv? "gleicher" |
... die Operanden in Datentyp und Wert gleich sind, |
| eq? "am gleichesten" |
... die Operanden auf den selben Platz im Arbeitsspeicher verweisen. |
Zurück zu numerischen Listen.