On Fri, 17 May 2019 at 01:21, Brainstorms <wild.id...@gmail.com> wrote:

> I beg your pardon.. and thank you for being the first to draw my attention
> to
> the fact that the phrase (a common enough American colloquialism) is
> actually a logical fallacy.  Until now, it's been strictly idiomatic to me.
>
> And thank you for your prompt reply.
>
> Am I safe to assume that blocks in Smalltalk, as with Lua, capture their
> locally-scoped variables (referred to in Lua as "non-local variables") for
> correct evaluation in other contexts, such as when blocks are passed as
> arguments and return values?  I.e., cases where the local variables of a
> method have gone out of scope and no longer exist, yet are referenced
> within
> the block at some future time when evaluated.  I expect so; I just haven't
> seen it described in this detail.
>

You mean like this...

In System Browser...
    Object subclass: #A
instanceVariableNames: ''
classVariableNames: ''
package: 'AA'

    A >> block
|a|
^ [ a := (a ifNil: [ 0 ]) + 1 ]

In Playground...
    b := A new block inspect.
    { b value. b value. b value . b }  "==> an Array( 1  2  3    [ a := (a
ifNil: [ 0 ]) + 1 ]  )"

cheers -ben

Reply via email to