式の評価結果を持つ値から連想配列を作成するいつものように、Eval と Expr に問題があります。
いくつかの式の結果として値が評価される連想配列を作成する必要があります。
たとえば、作成する必要があります
aaa=[
"2x2" => 4
]
ただし、4 評価された式 Expr(2*2) の結果があります。
明らかに動作しない不十分な亜種がここにあります。
aaa=[
"2x2" => 2*2
]
しかし、2*2 は Expr であると言います。
aaa=[
"2x2" => Expr(2*2)
]
次に、Eval Expr を使用して引数内のすべての式を評価し、評価された部分式を含む式を返します。
Eval Expr(
aaa=[
"2x2" => Expr(2*2)
]
)
そしてそれはすでに機能していません - Expr(2*2) を評価しません
次のステップでは、結果の式を評価します。
Eval(
Eval Expr(
aaa=[
"2x2" => Expr(2*2)
]
)
)
しかし明らかにそれは機能しません。
なぜうまくいかないのか、そして正しい方法は何ですか?
結果の共有と伝達Re: 式の評価結果を持つ値を含む連想配列を作成するはい、分かりました。 連想配列固有のものだと思っていましたが、構文固有のようです:)
Re: 式の評価結果を持つ値を含む連想配列を作成する@Craige_Hales知っておいて損はありません!舞台裏での開発経験をお持ちのようですね。
Re: 式の評価結果を持つ値を含む連想配列を作成する
なぜ機能しないのか
角括弧形式は、配列と連想配列の両方のコンパイル時定数です。 角括弧内の定数は実行時に複製され、aaa に保存されます。
@Erratic Attack私もそうする方法です。
Re: 式の評価結果を持つ値を含む連想配列を作成するJMP は矛盾しない限り、何もありません。リストを使用してそれを行うこともできます。私は次のような状況でこれを行っています。
val1 = "Steve";
val2 = "The";
val3 = "Turtle";
aaa = Associative Array(
{"key1", "key2", "key3"},
Eval List( {val1, val2, val3} )
);
show( aaa )