comparison generics.lisp @ 11:9f05ce23e71e

More default methods darcs-hash:20061129122229-f76cc-078113c430c4ae9f6c01056c6e7e6ecd078e7409.gz
author David Lewis <d.lewis@gold.ac.uk>
date Wed, 29 Nov 2006 12:22:29 +0000
parents 356ee92313be
children f6c08ad94c8a
comparison
equal deleted inserted replaced
10:356ee92313be 11:9f05ce23e71e
32 32
33 (defgeneric time+ (object1 object2)) 33 (defgeneric time+ (object1 object2))
34 (defgeneric time- (object1 object2)) 34 (defgeneric time- (object1 object2))
35 35
36 (defgeneric time> (object1 object2)) 36 (defgeneric time> (object1 object2))
37 (defgeneric time< (object1 object2)) 37 (defgeneric time< (object1 object2)
38 (:method (o1 o2) (time> o2 o1)))
38 (defgeneric time= (object1 object2)) 39 (defgeneric time= (object1 object2))
39 (defgeneric time>= (object1 object2) 40 (defgeneric time>= (object1 object2)
40 (:method (o1 o2) (or (time> o1 o2) (time= o1 o2)))) 41 (:method (o1 o2) (or (time> o1 o2) (time= o1 o2))))
41 (defgeneric time<= (object1 object2) 42 (defgeneric time<= (object1 object2)
42 (:method (o1 o2) (or (time< o1 o2) (time= o1 o2)))) 43 (:method (o1 o2) (or (time< o1 o2) (time= o1 o2))))
45 46
46 47
47 ;;; Duration protocol 48 ;;; Duration protocol
48 49
49 (defgeneric duration> (object1 object2)) 50 (defgeneric duration> (object1 object2))
50 (defgeneric duration< (object1 object2)) 51 (defgeneric duration< (object1 object2)
52 (:method (o1 o2) (duration> o2 o1)))
51 (defgeneric duration= (object1 object2)) 53 (defgeneric duration= (object1 object2))
52 (defgeneric duration>= (object1 object2) 54 (defgeneric duration>= (object1 object2)
53 (:method (o1 o2) (or (duration> o1 o2) (duration= o1 o2)))) 55 (:method (o1 o2) (or (duration> o1 o2) (duration= o1 o2))))
54 (defgeneric duration<= (object1 object2) 56 (defgeneric duration<= (object1 object2)
55 (:method (o1 o2) (or (duration< o1 o2) (duration= o1 o2)))) 57 (:method (o1 o2) (or (duration< o1 o2) (duration= o1 o2))))
71 73
72 (defgeneric pitch+ (object1 object2)) 74 (defgeneric pitch+ (object1 object2))
73 (defgeneric pitch- (object1 object2)) 75 (defgeneric pitch- (object1 object2))
74 76
75 (defgeneric pitch> (object1 object2)) 77 (defgeneric pitch> (object1 object2))
76 (defgeneric pitch< (object1 object2)) 78 (defgeneric pitch< (object1 object2)
79 (:method (o1 o2) (pitch> o2 o1)))
77 (defgeneric pitch= (object1 object2)) 80 (defgeneric pitch= (object1 object2))
78 (defgeneric pitch>= (object1 object2) 81 (defgeneric pitch>= (object1 object2)
79 (:method (o1 o2) (or (pitch> o1 o2) (pitch= o1 o2)))) 82 (:method (o1 o2) (or (pitch> o1 o2) (pitch= o1 o2))))
80 (defgeneric pitch<= (object1 object2) 83 (defgeneric pitch<= (object1 object2)
81 (:method (o1 o2) (or (pitch< o1 o2) (pitch= o1 o2)))) 84 (:method (o1 o2) (or (pitch< o1 o2) (pitch= o1 o2))))
83 (:method (o1 o2) (not (pitch= o1 o2)))) 86 (:method (o1 o2) (not (pitch= o1 o2))))
84 87
85 ;;; Interval protocol (emphasise _pitch_ not _time_ interval?) 88 ;;; Interval protocol (emphasise _pitch_ not _time_ interval?)
86 89
87 (defgeneric interval> (object1 object2)) 90 (defgeneric interval> (object1 object2))
88 (defgeneric interval< (object1 object2)) 91 (defgeneric interval< (object1 object2)
92 (:method (o1 o2) (interval> o2 o1)))
89 (defgeneric interval= (object1 object2)) 93 (defgeneric interval= (object1 object2))
90 (defgeneric interval>= (object1 object2) 94 (defgeneric interval>= (object1 object2)
91 (:method (o1 o2) (or (interval> o1 o2) (interval= o1 o2)))) 95 (:method (o1 o2) (or (interval> o1 o2) (interval= o1 o2))))
92 (defgeneric interval<= (object1 object2) 96 (defgeneric interval<= (object1 object2)
93 (:method (o1 o2) (or (interval< o1 o2) (interval= o1 o2)))) 97 (:method (o1 o2) (or (interval< o1 o2) (interval= o1 o2))))