私はプログラミングについて友人を教えていたので、a = b
とb = a
は非常に異なる2つのことを彼らに確信させました。左に連想されるプログラミング言語の例?
私は最終的にそれを記述するための正しい単語を見つけました(right associative)。
左アソシエイティブなプログラミング言語はありますか?私は言語を見たことがない:
a = b
bの値はaに設定される。
私はプログラミングについて友人を教えていたので、a = b
とb = a
は非常に異なる2つのことを彼らに確信させました。左に連想されるプログラミング言語の例?
私は最終的にそれを記述するための正しい単語を見つけました(right associative)。
左アソシエイティブなプログラミング言語はありますか?私は言語を見たことがない:
a = b
bの値はaに設定される。
我々はおよそOperator associativity
を語るなら、私たちは、実際にassociativity
の2種類を検討する必要があります。side_associative
それは得れば、それはマシンの任意の違いを確認しないと(例えば==
)(例えば=
)またはnon-associative
が行は左からです右から右へと、
はもともとleft associative
をしているそのようなプログラミング言語はありませんが、それらのいくつかは両方を許可する演算子のオーバーロードと、いくつかの(例えばR
)を介してそれを許可:->
と<-
を。
私は誰もそれがヨーロッパで好きではないと信じていますが、それは中東で可愛いかもしれません。私はIDE
があると思います。左側は右側に切り替わりますが、最後のコンパイラはヨーロピアンな形で書かれています。
"非結合"は、それが右か左から読み込まれているかどうかは関係ありません。コンテキストによっては、演算子が連想プロパティを持たないことを意味することがあります(つまり、 'a op b op cは' op(b op c) 'と等価ではありません) //en.wikipedia.org/wiki/Associative_property#Non-associativity))、左か右かのどちらでもない(演算子の複数の使用は常にカッコで囲まなければならない) - ここでは(https:///en.wikipedia.org/wiki/Operator_associativity#Non-associative_operators)。 – sepp2k
私はそう信じません。あなたは常に代入演算子をオーバーロードして、あなたのC++の中で完全な混乱を引き起こすことができます。
Rには、<-
と->
の代入演算子が定義されています。
> b <- 42
> b -> a
> a
[1] 42
あなたは結合性を誤解しています。 がa op (b op c)
に相当する場合、演算子op
は結合型です。結合していない演算子の場合は、a op b op c
が前者か後者かを表すかどうかが関係します。したがって、左結合演算子((a op b) op c
)と右結合演算子(a op (b op c)
)を区別します。
ほとんどの言語のほとんどの演算子は、左結合型です。例:-
:a - b - c
は、ほとんどの言語で(a - b) - c
に相当し、a - (b - c)
ではありません。
代入演算子は、(a = b) = c
が一般的に合法ではないため(代入結果に代入できないため)、例外です。したがって、ほとんどの言語でa = b = c
はa = (b = c)
に相当します。特筆すべき例外はPythonで、a = b = c
はまったく関連せず、単に違法です。
これは、a = b
とb = a
の違いとは関係ありません。これは、=
演算子を1回だけ使用するため、結合性はこれをまったく考慮しません。むしろ関連するプロパティはcommutativityです。a op b
がb op a
に等しい場合、演算子op
は可換です。私は、割り当てが可換である言語を認識しておらず、またどのようにできるかという考えも持っていません。
左 - 可換性または右可換性のような概念は存在しません。私の知る限りでは、質問は「a = b
はb
にa
に、またはその逆に割り当てられますか?これは代入演算子のセマンティクスの一部です。
あなたの質問は誤解を招くようです。あなたは割り当ての連想性について尋ねますが、それが何を意味するものであれ(言わないと信じています) –
@リトルエイリアンどのように質問を明確にしますか?私が見たことから、各言語のすべての演算子は右結合に設定されています。私は、連想されるように書かれた言語があるかもしれないと思った。 –
正しい連想ではない操作があることがわかりにくいです。あなたが投稿したリンクの下でさえ、我々は非連想演算子について読んで、連合性を持つC言語のop優先順位テーブルへのリンクを見ます。そこに左右の連想演算子があります。あなたはGoogleに「適切な関連言語」を見つけることはできません。あなたはただ一つのオペレーターを選び、すべてのオペレーターにそのアソシエーティビティを拡張しました(http://www.youtube.com/watch?v=s7MTM4BKZ_E)。 RA言語がないので、私はあなたにLA代理演算子について質問すると思った。 –