Cascade semantics change

Lee Salzman lsalzman1 at
Tue Mar 15 15:55:34 PST 2005

Rather, you mean, for any statement within a cascaded block:

Before, only the message at the root of the syntax tree , if its first 
argument was implicit, would be retargeted to the source of the cascade.

Now, the leftmost message (or bottom leftmost leaf of the syntax tree), 
if its first argument is implicit, will be retargeted to the source of 
the cascade.


Brian Rice wrote:

> After some consideration, Lee and I have enacted a change to `>> so 
> that some unexpected behavior is made sensible, but this removes a 
> grammatical possibility.
> The problem is in an expression such as this:
> [| bar |
>   bar: something else.
>   some Expression `>> [foo bar. bar baz: quux. ]
> ].
> Previously, baz: would be the top-level expression, so it would be 
> sent to the cascade argument, and you would get all sorts of confusing 
> errors, since you thought that you were sending bar first to the 
> cascade, and then baz: to that result with quux as the other argument.
> So, now, `>> has been corrected in its semantics so that /all/ leading 
> unary context sends are treated as messages to the cascade 
> expression's result. In order to refer to bar now, you /must/ refer to 
> it in a non-top-level expression.
> -- 
> Brian T. Rice
> LOGOS Research and Development

More information about the Slate mailing list