In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] wrote: > Similarly, R5RS obligates any Scheme implementation to resort to > assignments when processing a letrec form.
Not mine! I do use a polyvariadic fixed-point function. (define circular (letrec ((c (cons 'x c))) c)) (list-head circular 10) => (x x x x x x x x x x) Try it yourself at <http://hscheme.sourceforge.net/interpret.php>. I also make the fixed-point function available as "call-with-result", it's more or less equivalent to this: (lambda (f) (letrec ((x (f x))) x)) > An implementation may not > use a (polyvariadic) Y to implement letrec, unless the implementation > can prove that the difference is unobservable for the form in > question. Do you have an example of use of Y for letrec where a program would violate R5RS? -- Ashley Yakeley, Seattle WA _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe