
Well, i have tried cons (:) operator but when it passed to foldr doesn't work because cons operator operates first character and then the list but the foldr argument takes a function (a->a->a). Maybe i am missing the point here? Aaron Denney wrote:
On 2007-08-14, Alexteslin
wrote: Hi,
I am trying to do the exercise which asks to define built-in functions 'last' and 'init' using 'foldr' function, such as last "Greggery Peccary" = 'y'
the type for my function is:
myLast :: [Char] -> Char
I am not generalizing type so that make it less complicated. But what ever i am trying would not work. The only function type foldr takes as an argument is either (a->a->a) or (a->b->b) and none of the functions i found that would match this type from Char to Char. So in other words should be (Char->Char-Char). I can define the function without foldr but that misses the point of the exercise.
Folds replace the "cons" operator (:) with the function you pass it. If you want the tail of the list, you want what is on the right hand side of every cons (unless that's []).
-- Aaron Denney -><-
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- View this message in context: http://www.nabble.com/defining-last-using-foldr-tf4269357.html#a12151694 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.