Comme d'habitude, j'ai des problèmes avec Eval et Expr.
Je dois créer un tableau associatif où les valeurs seraient évaluées comme résultats de certaines expressions.
Par exemple, je dois créer
aaa=[
"2x2" => 4
]
mais 4 il y a un résultat de l'expression évaluée Expr(2*2)
Une variante boiteuse qui ne fonctionne évidemment pas est ici :
aaa=[
"2x2" => 2*2
]
Mais alors je dirai que 2*2 est une Expr :
aaa=[
"2x2" => Expr(2*2)
]
puis j'utiliserai Eval Expr pour évaluer toutes les expressions à l'intérieur de l'argument et renvoyer l'expression avec les sous-expressions évaluées :
Eval Expr(
aaa=[
"2x2" => Expr(2*2)
]
)
et ça ne marche déjà pas - ça n'évalue pas Expr(2*2)
L'étape suivante consisterait à évaluer l'expression résultante :
Eval(
Eval Expr(
aaa=[
"2x2" => Expr(2*2)
]
)
)
mais visiblement ça ne marche pas.
Pourquoi cela ne fonctionne-t-il pas et quelle est la bonne méthode ?
OK compris. Je pensais que c'était spécifique au tableau associatif, mais on dirait que c'est spécifique à la syntaxe 
@Craige_Hales Bon à savoir!On dirait que vous avez une certaine expérience du développement en coulisses à ce sujet !
Pourquoi ça ne marche pas
La forme entre crochets est une constante de temps de compilation, à la fois pour les tableaux et les tableaux associatifs. La constante entre crochets est clonée au moment de l'exécution et stockée dans aaa.
@ErraticAttack c'est comme ça que je le ferais aussi.
JMP n’est rien sinon incohérent.Vous pouvez le faire via des listes, c'est ce que je fais dans ces circonstances :
val1 = "Steve";
val2 = "The";
val3 = "Turtle";
aaa = Associative Array(
{"key1", "key2", "key3"},
Eval List( {val1, val2, val3} )
);
show( aaa )