[Haskell-beginners] Trying to understand function types eg iterate (a -> a)
Angus Comber
anguscomber at gmail.com
Tue Dec 31 14:46:03 UTC 2013
iterate' :: (a -> a) -> a -> [a]
I am trying going to go ahead and write my own iterate function. But
before I do I want to be clear on types.
Looking at :: (a -> a) -> a -> [a]
The first part is (a -> a) Now because it is in parentheses it is a
function?
I can call iterate like this:
take 5 $ iterate (*2) 5
So (*2) is a possible function. Does the brackets mean it is a function,
the left hand a is indicating a general type and the right hand a means the
return type must be the same as the function type. Eg in the case of (*2)
the 2 is an Int so the function returns and Int? Is my understanding
correct?
How could this be better explained?
The last bit is easier to understand. a -> [a] meaning a singleton of
general type and [a] means a list of same type.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20131231/2633a939/attachment.html>
More information about the Beginners
mailing list