[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: James Rice <Rice@SUMEX-AIM.Stanford.EDU>
- Subject: Re: LetRec?
- From: Pavel.pa@Xerox.COM
- Date: Fri, 8 Apr 88 13:56:33 PDT
- Cc: Common-Lisp@Sail.Stanford.EDU
- In-reply-to: <12388873983.13.RICE@SUMEX-AIM.Stanford.EDU>
I appreciate that I can declare recursive
local functions with Labels. I cannot, however refine recusive/
circular data structures with it. There seems to me to be a
good symetry argument in favour of non-function LetRec to
match with Labels. There also seems to be an argument in favour
of it in that those wanting to progam in a pure functional
style will not be able to declare circular structures in CL.
How will you implement it? More interestingly, how will you define its
semantics? In particular, while this human can tell that there's a solution to
x = (cons 1 x)
how is your compiler (or interpreter) going to distinguish that from
x = (+ 1 x)
x = (foo 1 x)
where ``foo'' is a function that I've written? I understand very well about the
usual least-fixed-point semantics for LETREC, but those fixed-points are usually
infinite or non-existent; how do you propose that the interpreter discover
representations of such fixed-points in general?
- Re: LetRec?
- From: James Rice <Rice@SUMEX-AIM.Stanford.EDU>