0xd34df00d
17.11.2011 20:43 Azoth_primary
*Intervals> open (2, 3)
(2; 3)
*Intervals> open (2, 3) \/ Point 2
[2; 3)
*Intervals> open (2, 3) \/ Point 2 \/ Point 3
[2; 3]
С одной стороны, круто, конечно.
С другой, такой код меня смущает: showSimple (Unite (Point p1) (Unite (Point p2) (Open (a, b)))) | (p1, p2) == (a, b) || (p1, p2) == (b, a) = showPSym ("[", "]") (a, b)
Ну и, если что,
data Interval a = Whole
| Point a
| Open (a, a)
| Unite (Interval a) (Interval a)
| Intersect (Interval a) (Interval a)