[plt-scheme] should `map' reuse cons cells?
Doug Orleans wrote:
> According to the SRFI-1 notes about its reference implementation:
>
> Functions reuse longest common tails from input parameters to
> construct their results where possible.
>
> Shouldn't that mean that the following should be true?
>
> > (define l (list 1 2 3))
> > (eq? l (map identity l))
> #f
No.
The function map have can't determine whether the given function
behaves like the identity on all elements of the list without
first building a list with the mapped elements and then compare
this list to the original.
The note is there to make sure that those functions where one
expects common tails to be reused (e.g. drop) actually
does reuse.
In other words, I interpret the "where possible" not to mean
"theoretically possible" but to mean "possible without speed
or memory sacrifices".
--
Jens Axel Søgaard