
It's first time I see function type (and where is definition?) in record syntax. Can somebody explain this?
There's no definition, it's a parameter to the constructor, so the function
can be anything. Taking a much simpler example, you'll be familiar with, if
you do:
data Foo a = Foo a
then the first argument to the Foo constructor also doesn't have a
definition. But when you use it to construct a value, then you provide one:
myFoo = Foo 3
Likewise, when you construct an Ord value, you supply a function as the
value for the 'less' parameter:
numOrd = Ord { less = (<) }
or you could use a different function for a different purpose:
listLengthOrd = Ord { less = \ a b => length a < length b }
Hope that helps,
Peter
On 20 February 2013 21:18, Emanuel Koczwara
Hi,
I'm watching Philip Wadler "Faith, Evolution, and Programming Languages" (very cool by the way): http://www.youtube.com/watch?v=8frGknO8rIg
At 00:24:14 there is strange thing on the slide:
data Ord a = { less :: a -> a -> Bool }
It's first time I see function type (and where is definition?) in record syntax. Can somebody explain this?
Emanuel
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners