Difference between revisions of "Singleton list confusion"
From HaskellWiki
(further example, but same author) 
(example) 

(2 intermediate revisions by the same user not shown)  
Line 1:  Line 1:  
Why do Haskell newcomers frequently believe, that list variables must be enclosed in brackets? 
Why do Haskell newcomers frequently believe, that list variables must be enclosed in brackets? 

People sometimes write argument patterns like <hask>[x]</hask>, hoping that <hask>x</hask> will assume all values of a list successively. 
People sometimes write argument patterns like <hask>[x]</hask>, hoping that <hask>x</hask> will assume all values of a list successively. 

⚫  
+  Example: 

+  <haskell> 

+  case xs of 

+  [x] > [f x] 

+  </haskell> 

+  although they meant 

+  <haskell> 

+  [f x  x < xs] 

+  </haskell> 

+  or just <hask>map f xs</hask>. 

⚫  
+  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 <hask>[a]</hask> instead of <hask>List a</hask>), 

+  then there would be certainly less confusion. 

<! the first time I saw this in students homework solutions > 
<! the first time I saw this in students homework solutions > 

See for example 
See for example 

HaskellCafe about 
HaskellCafe about 

−  +  [http://www.haskell.org/pipermail/haskellcafe/2008April/041496.html testing for same characters in lists of strings], 

−  +  [http://www.haskell.org/pipermail/haskellcafe/2008April/041556.html Pattern match failure] 

[[Category:Syntax]] 
[[Category:Syntax]] 
Latest revision as of 07:16, 11 April 2008
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 HaskellCafe about testing for same characters in lists of strings, Pattern match failure