July 2017
Intermediate to advanced
284 pages
6h 45m
English
Interfaces, in the sense used here, work on several levels. Here’s a standard example from Haskell that will be familiar to Java programmers: the “comparable” interface. I’ll explain it in two stages—first, an underlying equality test, then the wider less-than-or-equal test.
| | class Eq a where |
| | (==) :: a -> a -> Bool |
| | |
| | class Eq a => Ord a where |
| | (<=) :: a -> a -> Bool |
| | compare :: a -> a -> Ordering -- LT or EQ or GT |
The technical term for entities like the preceding is “type class,” intuitively identifying a set of types that provide the listed functionality. I prefer the more informal term “interfaces,” since what we’re doing is describing some functionality that can be assumed for some type, or a promise of ...
Read now
Unlock full access