Hi,

The discussed code:

f: func [f-arg] [
    g: func [g-arg] [
        print [g-arg f-arg global-word]
      ]
     g "This is g's argument."
 ]

Gabriele:

> >So when F is created
> >the block:
> >
> >  [
> >    print [g-arg f-arg global-word]
> >  ]
> >
> >gets bound to F's context; more precisely,
> >the word "f-arg" gets
> >bound to F's context, while "print", "g-arg" and "global-word"
> >aren't changed (so they're still bound to the global context).
>

Elan:

> I think this is a conceptual problem. There is no g-arg defined
in the
> global context. Accordingly "g-arg" was never bound to the
global context.
> Therefore "g-arg" cannot "still" be bound to the global context.

Here is a proof:

>> global? probe first second fourth second :f
g-arg
== true

Regards
    Ladislav



Reply via email to