Personal tools

Singleton list confusion

From HaskellWiki

Jump to: navigation, search

Why do Haskell newcomers frequently believe, that list variables must be enclosed in brackets?

People sometimes write argument patterns like
, hoping that
will assume all values of a list successively.


case xs of
   [x] -> [f x]

although they meant

[f x | x <- xs]
or just
map f xs

It seems like they expect some kind of list comprehension.

However, if there wouldn't be a special list notation and if there wouldn't be the special syntax for the list type constructor (thus we must write
instead of
List a

then there would be certainly less confusion.

See for example Haskell-Cafe about testing for same characters in lists of strings, Pattern match failure