[Haskell-cafe] defining last using foldr

Rodrigo Queiro overdrigzed at gmail.com
Tue Aug 14 16:17:23 EDT 2007

I've found a way to do it, but it's not pretty.

Hint: The function in the foldr first get the last value, and will
need to keep it the whole way through. How can it tell if it is being
given the last item or an earlier item?

I'm generally not too good at the Socratic method, so feel free to
email for some more help or my answer.

On 14/08/07, Alexteslin <alexteslin at yahoo.co.uk> 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.
> Any hint will be appreciated,
> Thank you
> --
> View this message in context: http://www.nabble.com/defining-last-using-foldr-tf4269357.html#a12151145
> Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list