Comment 3 for bug 452008

Revision history for this message
Jorge Tavares (jorgetavares) wrote :

Hi,
Hi,

Thanks for the quick reply and for pointing out the mistakes. I didn't think about all the issues.

I rewrote the fix using DO as suggested and removed the use of LENGTH. I start to check if :start is bigger than :end. The rest is done within the DO. However, the patch does not work with circular lists. This happens because to signal an error when :end is larger than the list length, we need to walk the entire list to compare both values (since we don't know the length at the beginning). I went to check the HyperSpec and it states that the sequences for FIND/POSITION must be proper sequences. As such, should FIND/POSITION really work with circular lists since these are improper lists? I also checked ClozureCL and FIND/POSITION do not work with circular lists (signals an error).

Well, I hope the patch is more useful now :-)

Cheers,