Jon Lang wrote:
> This approach could be functionally equivalent to the "proxy object"
> approach, but with a potentially more user-friendly interface.  That
> is,
>
>  sub foo (*$value) { yadda }
>
> might be shorthand for something like:
>
>  sub foo () is rw {
>    return new Proxy:
>      FETCH => method { return .doit() },
>      STORE => method ($val) { .doit($val) },
>      doit => method ($value?) { yadda }
>  }

Correction:

  sub foo (*$value) { yadda }

might be shorthand for something like:

  sub foo () is rw {
    return new Proxy:
      FETCH => method { return .() },
      STORE => method ($val) { .($val) },
      postcircumfix:<( )> => method ($value?) { yadda }
  }

i.e., it can be called like a regular function as well as via
assignment semantics.

-- 
Jonathan "Dataweaver" Lang

Reply via email to