On Wed, 28 Dec 2011 19:08:08 +0000 Henry Lockyer <henry.lockyer@ntlworld.com> wrote:
On 28 Dec 2011, at 19:05, Henry Lockyer wrote: Sorry, should have read your question a second time instead of posting a quick reply ;-) I think it is syntactic sugar..
Others say it's syntactic sugar, but your advice:
If you have GHCI installed, then I recommend using the ":t" command to explore the types of Haskell expressions.
is still good, *and* can answer that question:
Is list range (for example: [1..10]) a language construct or a function? What type does it have?
If it's a function, then :t will know about it, even in that odd form if you wrap it in parens. For instance: *Main> :t (+) (+) :: Num a => a -> a -> a even if it's a constructor, like: *Main> :t ((,)) ((,)) :: a -> b -> (a, b) But trying the [..] notation, you get: *Main Network.HTTP> :t ([..]) <interactive>:1:3: parse error on input `..' I.e. - it's syntactic sugar to generate a value. If it were a function, the type would be something like: ([..]) :: Enum a => a -> a -> [a] <mike -- Mike Meyer <mwm@mired.org> http://www.mired.org/ Independent Software developer/SCM consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org