[Haskell-cafe] defining last using foldr

Alexteslin alexteslin at yahoo.co.uk
Tue Aug 14 16:31:06 EDT 2007


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 <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.  
> 
> 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 at 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.



More information about the Haskell-Cafe mailing list