[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Semantics of Internal Definitions



On the proposal to change the semantics of internal definitions, you wrote:
> From: "Guillermo J. Rozas" <gjr@martigny.ai.mit.edu>

> I don't particularly object to this, but there are cases that have not
> been specified, namely ....

The semantics you favor is exactly the one I had in mind.  For
example, a program and its equivalent are shown below.

  (lambda (...)			(lambda (...)
    (define a E_1)		  (let ((a <unspecified>)
    E_2			==>   		(b <unspecified>)
    (define b E_3)		    (set! a E_1)
    E_4)			    E_2
				    (set! b E_3)
				    E_4)
				
This is the behavior what one would expect given the definition of a
program as defined in the first appendix of the Scheme report.  Let's
simply use the same translation for internal definitions.

John