Re: LIST-LENGTH & circular lists Noah Friedman 23 Apr 2001 22:58 UTC

>   But this is scheme, which isn't "pure".  It's not clear to me why the
>   distinction between a pure list & a "side-effectable" list should be
>   made.
>
>People frequently like to work in a "pure" subset of Scheme. Simpler world,
>more axioms about your code & data hold. Sometimes, you work in this world
>in one chunk of your program, then take an impure view for some other piece
>where it's necessary to do so.

Depends on the kinds of problems you're trying to solve.  A circular list
might just be an infinite stream, or it might model some real-world graph
(such as a webmap or cross-referenced directory taxonomy).  I wouldn't
claim the function I posted is useful enough to include in a
general-purpose library.  In fact I'd never seen that algorithm before (a
friend of mine and I worked on it after noticing that the classic
tortoise-hare algorithm detected circular lists but revealed nothing more
about them), so it can't be a problem that people encounter every day.  But
since a couple of people made remarks on this list to effect that this
looked like an "expensive" problem, I just wanted to point out that it's
not especially so.