David Kastrup <[email protected]> writes:
> Mark H Weaver <[email protected]> writes:
>
>> David Kastrup <[email protected]> writes:
>>
>>> I am not sure that the reasons for not permitting definition context in
>>> local-eval are not of somewhat more theoretical than practical nature,
>>
>> There's at least one practical reason not to allow it, namely that it is
>> _impossible_ to implement. Consider this:
>>
>> (let ((x 1))
>> (define (get-x) x)
>> (the-environment))
>>
>> If we allow (the-environment) to add definitions to the implicit
>> `letrec',
>
> Then just let's not allow it. Consider the body of local-eval to be
> wrapped inside of an implicit (begin ...).
I think you mean an implicit (let () ...). If that's what you want,
then you can do it yourself, and the result will be less likely to
confuse.
> Is there any currently valid construct that would change its behavior?
> If not, you _gain_ functionality, and the resulting semantics are still
> straightforward to explain as far as I can see.
I don't understand this at all. Change what behavior? What
functionality do you gain?
Mark