On 11/06/2011 08:27 PM, Tanner Swett wrote:
> On Sun, Nov 6, 2011 at 8:41 PM, Pavitra <celestialcognit...@gmail.com> wrote:
>>> I cash promise S, specifying promise I. Call the resulting promise C.
>> This submits a second copy of S, and assigns C as a synonym for S.
>> (Note that promises with the same text, author, and conditions are
>> fungible.)
> 
> That's what would happen if I cashed I, specifying S. I'm quite sure
> that if I cash S, specifying I, something else is produced.

Right, let's try this again.

> I submit the following promise, which will be called S:
> {{S
>   I submit the following promise, where X is the promise specified:
>   {{C
>     I submit the following promise, where Y is the promise specified:
>     {{D
>       I submit the following promise, where Z is the promise
>       specified:
>       {{E
>         I cash promise X, specifying promise Z.
>           Call the resulting promise A.
>
>         I cash promise Y, specifying promise Z.
>           Call the resulting promise B.
>
>         I cash promise A, specifying promise B.
>
>         (This promise is not destroyed when cashed.)
>       }}E
>
>       (This promise is not destroyed when cashed.)
>     }}D
>
>     (This promise is not destroyed when cashed.
>   }}C
>
>   (This promise is not destroyed when cashed.
> }}S
S created.

> "cash I specifying Q" means "cash Q".
This doesn't change.

> I cash promise S, specifying promise I. Call the resulting promise C.
C created, X=I.

> I cash promise C, specifying promise I. Call the resulting promise D.
D created, X=I Y=I.

> I cash promise D, specifying promise D.
Call the resulting promise E_1.
E_1 created, X=I Y=I Z=D.


>>> I cash promise D, specifying promise D.
>> One copy of a new promise is submitted; following the existing naming
>> scheme, I call it E. X=I and Y=D.
> 
> Promise D is supposed to cash the promise specified, specifying
> itself. Thus, cashing D specifying D is an infinite loop.

Promise D reads "I submit the following promise, where Z is the promise
                   ^^^^^^
specified: {{E(X=I, Y=I)}} (This promise is not destroyed when cashed.)"


However, let us suppose that you cash E, which does not require context.
With the current variable settings, this gives us:
>       {{E_1
>         I cash promise I, specifying promise D.
>           Call the resulting promise A.
D is cashed, but Z is unbound. This creates A=E_2(X=I, Y=I, Z=null).

>         I cash promise I, specifying promise D.
>           Call the resulting promise B.
This creates a second (fungible) copy of E_2 and assigns B as an
additional synonym.

>         I cash promise A, specifying promise B.
As A is an E-class promise, it takes no context-upon-cashing; thus,
"specifying promise B" has no effect. Results of cashing E_2 follow below.

>
>         (This promise is not destroyed when cashed.)
>       }}E_1

Results of cashing E_2:

>       {{E_2
>         I cash promise I, specifying promise (null).
>           Call the resulting promise A.
No promise is specified to I, so the text of I fizzles. A=null.

>
>         I cash promise I, specifying promise (null).
>           Call the resulting promise B.
Likewise B=null.

>
>         I cash promise A, specifying promise B.
No effect.

>
>         (This promise is not destroyed when cashed.)
>       }}E_2

Reply via email to