David Kastrup <d...@gnu.org> writes:

> Mark H Weaver <m...@netris.org> writes:
>
>> David Kastrup <d...@gnu.org> 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

Reply via email to