
10 Jun
2016
10 Jun
'16
11:09 a.m.
Add a pattern match for the single-element list to stop it from hitting the empty list base case. asum [] = empty asum [x] = x asum (x:xs) = x <|> asum xs On Friday, June 10, 2016, Tom Ellis < tom-lists-haskell-cafe-2013@jaguarpaw.co.uk> wrote:
On Fri, Jun 10, 2016 at 05:37:41PM +0300, Юрий Сыровецкий (Yuriy Syrovetskiy) wrote:
It is so because in base library
asum = foldr (<|>) empty
What if it was defined
asum [] = empty asum [x:xs] = x <|> asum xs
Those are the same (assuming you mean (x:xs) instead of [x:xs]).
Tom _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org javascript:; http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- -- Dan Burton