Singleton list confusion
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Why do Haskell newcomers frequently believe, that list variables must be enclosed in brackets?
People sometimes write argument patterns like [x]
, hoping that x
will assume all values of a list successively.
Example:
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 [a]
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