Question about something in Hudak's book
Ludovic Kuty
kuty@advalvas.be
Wed, 13 Mar 2002 00:07:51 +0100
Hello,
I have just begun reading Hudak's The Haskell School of Expression
and i am wondering something about the manner he calculates
the area of a polygon (made of vertices) on page 27.
He wrote:
area(Polygon (v1:vs)) = polyArea vs
where polyArea :: [Vertex] -> Float
polyArea (v2:v3:vs') = triArea v1 v2 v3 + polyArea(v3:vs')
polyArea _ = 0
i do not understand why variable v1 is pattern-matched in
the definition of area and made "global" to polyArea instead
of doing it with polyArea like this:
area(Polygon vs) = polyArea vs
where polyArea :: [Vertex] -> Float
polyArea (v1:v2:v3:vs') = triArea v1 v2 v3 + polyArea(v3:vs')
polyArea _ = 0
Is it an idiom or some sort of optimization ?
Or just the way he likes it ?
TIA
Ludovic Kuty