[Haskell-cafe] recursion problem part 2

Jerzy Karczmarczuk jerzy.karczmarczuk at unicaen.fr
Sat Feb 7 02:15:37 UTC 2015


Le 07/02/2015 02:48, Jeffrey Brown a écrit :
> I see: what matters is that ++ has to traverse to the end of the first 
> list. The order in which its two arguments are evaluated is irrelevant.
>
> Thank you, David and Arjun!
>
> On Fri, Feb 6, 2015 at 5:38 PM, Arjun Comar <nrujac at gmail.com 
> <mailto:nrujac at gmail.com>> wrote:
>
>     Jeff,
>     An expression of the form xs ++ [x] appends the element to the end
>     of the list. In order to evaluate the result, the ++ function
>     iterates through the elements of the first list to find the end of
>     the list then sets the tail of the last element of the first list
>     to the second list.
>
Gentlemen, don't forget that Haskell is lazy, and this traversal takes 
place only when the list is effectively traversed by a consumer, which 
stores everything (and doesn't get rid of elements read). This might be 
the case here if somebody wants to keep and use the "digit 
representation" of a number, but please do not consider this phenomenon 
as inherent to the list creation algorithm.

Jerzy Karczmarczuk

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20150207/0737e3a4/attachment.html>


More information about the Haskell-Cafe mailing list