Sto cercando di ottenere tutte le variabili all'interno di qualsiasi espressione (quindi non posso esplicitamente farne parte) in questo modo:
Names default to here(1);
some_f = function({x},
{c},
c=1;
return(x);
);
some_expr = Expr(
a=1;
//b = some_f(1);
);
//trying to get all the variables inside some_expr
Eval(Substitute(
Expr(
local here(
DV_EXPR;
associative array(namespace("here") << Get Contents);
)
),
Expr(DV_EXPR), nameexpr(some_expr)
));
Ora funziona benissimo fino a quando il commento non scompare che la funzione chiama all'interno dell'espressione.
Quindi mi imbatto in un problema come questo.
b = 2;
y = Local Here(
a = 1;
c = a + b;
c;
);
Qualcuno può pensare a un modo migliore per farlo? O di un modo per assicurarmi che il mio locale qui possa vedere nomi al di fuori di se stessi SENZA metterli nello spazio dei nomi qui locale? Ho anche provato solo local (). Ma a causa del modo in cui {DEFAULT LOCAL} funziona, non c'è amore. Ho provato anche UsingNamespace () ma sono abbastanza sicuro che non funzioni.