This package implements a simple Interval type for Elm.
Various functionality is included for constructing intervals (including as the
hull or intersection of other intervals), checking for
overlap/intersection/containment, and performing limited arithmetic on
intervals:
unitInterval =
Interval.from 0 1
Interval.endpoints unitInterval
--> ( 0, 1 )
Interval.containingValues [ 2, 1, 3 ]
--> Just (Interval.from 1 3)
Interval.hull
(Interval.from 1 2)
(Interval.from 3 5)
--> Interval.from 1 5
Interval.intersection
(Interval.from 1 3)
(Interval.from 2 5)
--> Just (Interval.from 2 3)
Interval.intersection
(Interval.from 1 2)
(Interval.from 3 5)
--> Nothing
Interval.contains 0 (Interval.from -1 3)
--> True
Interval.contains 5 (Interval.from -1 3)
--> False
Interval.sin (Interval.from 0 pi)
--> Interval.from 0 1Currently the only functions that have been implemented are ones that were
needed by the elm-geometry package, but I'm happy to consider pull requests
for other generally-useful functionality. Please open a new issue
before starting work, though, so we can discuss different approaches!