Come al solito ho problemi con Eval ed Expr.
Devo creare un array associativo in cui i valori verrebbero valutati come risultati di alcune espressioni.
Ad esempio, ho bisogno di creare
aaa=[
"2x2" => 4
]
ma 4 c'è un risultato dell'espressione valutata Expr(2*2)
La variante zoppa che ovviamente non funziona è qui:
aaa=[
"2x2" => 2*2
]
Ma poi dirò che 2*2 è un'Espr:
aaa=[
"2x2" => Expr(2*2)
]
quindi utilizzerò Eval Expr per valutare tutte le espressioni all'interno dell'argomento e restituire l'espressione con le sottoespressioni valutate:
Eval Expr(
aaa=[
"2x2" => Expr(2*2)
]
)
e già non funziona: non valuta Expr(2*2)
Il prossimo passo sarebbe valutare l'espressione risultante:
Eval(
Eval Expr(
aaa=[
"2x2" => Expr(2*2)
]
)
)
ma ovviamente non funziona.
Perché non funziona e qual è il modo corretto?
Ok capito. Pensavo che fosse specifico dell'array associativo, ma sembra che sia specifico della sintassi 
@Craige_Hales Buono a sapersi!Sembra che tu abbia qualche esperienza di sviluppo dietro le quinte su questo!
Perché non funziona
La forma della parentesi quadra è una costante di tempo di compilazione, sia per gli array che per gli array associativi. La costante tra parentesi quadre viene clonata in fase di esecuzione e archiviata in aaa.
@ErraticAttack è il modo in cui lo farei anch'io.
JMP non è altro che incoerente.Puoi farlo tramite elenchi, che è quello che faccio in queste circostanze:
val1 = "Steve";
val2 = "The";
val3 = "Turtle";
aaa = Associative Array(
{"key1", "key2", "key3"},
Eval List( {val1, val2, val3} )
);
show( aaa )