[Haskell-beginners] Type declarations
Francesco Ariis
fa-ml at ariis.it
Sun Nov 26 18:20:16 UTC 2017
On Sun, Nov 26, 2017 at 07:02:36PM +0100, mrx wrote:
> What do you mean by parameter of Point a?
Let's start with a type you probably know, Maybe:
data Maybe a = Just a
| Nothing
The `a` in `Maybe a` is a type parameter, as the whole thing can
be a `Maybe Int`, `Maybe String`, etc.
Now let's check what `Point a` does
data Point a = Coordinate Double Double
Uhhh, suspicious, there is an `a` on the left side, but it's pretty
useless, because there is no `a` on the right side. This is
most likely not correct. Better to write
-- this, concrete
data Point = Coordinate Double Double
-- or parametric
data Point a = Coordinate a a
> Do you think it would be a mistake to simply skip writing the type
> declarations completely until I've reached type classes?
As now you know how write signatures like `something :: Int -> [String]`,
when you meet `Something a => etc.` tread with care until you reach
the chapter on typeclasses.
More information about the Beginners
mailing list