問題タブ [associativity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - インフィックスをポストフィックス式に変換すると、結合性は常に左から右になりますか?
はいの場合、なぜそうなのですか?右結合性は後置式に有効ではありませんか?
c++ - 演算子の結合性と評価の順序
私はあちこちから、stackoverflow や他の Web サイトから、式の評価が演算子の優先順位と演算子の結合性に依存していることを読みました。問題は、ある有名な Web サイトの次の行を読んだことです。優先順位と結合性は、評価の順序とは無関係です。わかりましたが、教育サイトで次の行を読みました。式のデータ型と値は、オペランドのデータ型と、演算子の優先順位と結合性によって決定される演算子の評価順序に依存します。
わかりました、私は混乱しています。コンパイラーは、最適化のために同じ優先順位の演算子を異なる順序で評価できることを知っているので、評価が行われる順序で動作は未定義です。つまり、式全体を変更でき、副作用がまったくない場合でも、副作用が 1 つしかない場合でも、結果は同じになります。それとも私が間違っていますか?私が正しければ、ほとんどの場合、評価の順序が定義されていない場合、演算子の結合性を定義するのはなぜですか。代入チェーン、論理短絡演算子、およびその他の場合を除きます。
つまり、評価の順序は結合性に依存します。もしそうなら、あなたはどのように説明できますか?結合性に依存していない場合、そもそも結合性を定義するのはなぜですか。それは、評価フェーズではなく、解析フェーズのためだけですか? 結合性が役立つと私が見た唯一の場所は、三項演算子の場合です。また、関数の引数の評価順序が定義されていないため、演算子のオーバーロードに結合性が適用されないのはなぜですか。
haskell - モナド結合法則における束縛されていない変数
を使用しghci
て計算しました:
上記のモナド式は、モナド結合法則のどちらの側にも対応していないようです。
モナド結合性を式に適用する方法を知りたい:
は周囲の関数とそれを含む関数の両方で閉じているためreturn (x,y)
、結合法則の左側に存在する中間モナド(m >>= f)
はこの例では存在できないようです。
c - 左から右および右から左 - 演算子の両方の結合性がステートメントに存在する場合、何が考慮されますか?
b の値は? ここで、=,+ の結合性は左から右、*,接頭辞の増分 (++) の結合性は右から左です。
int b=a*i + ++i; の場合、どのような評価順序を考慮する必要がありますか。
左から右へ?右から左へ?なんで?
haskell - なぜ$です!演算子右結合?
私は Haskell を学んでいますが、厳密な評価がいつ、どのように強制されるかについてはまだ完全には明らかではありません
関数にその引数を厳密に評価させたいとき、私は自分自身が書いていることに気づきます
これは奇妙に思えます。$しないでください!私が書くことができるように左結合であること
そして、私が望むことをしてもらいますか?
私は $! を完全に誤解していますか? オペレーター?
c++ - |、~、および & 演算子の演算子の優先順位は?
これらの論理演算子について混乱しています。誰かがこれらの演算子の優先順位と連想規則を説明してくれませんか? ビット単位の演算では、a=011、b=010、c=001 d では、a を最初に否定するか、評価を右から左に開始し、どちらの優先順位が高いか? 出力は 4、3、3 です。
python - 左から右へのPython比較演算子の連鎖/グループ化?
演算子の優先順位に関する Python ドキュメントには、次のように記載されています。
同じボックス グループ内の演算子は、左から右にグループ化されます (テストを含む比較は例外で、すべて同じ優先順位を持ち、左から右にチェーンされます — セクション比較... を参照してください)。
これは何を意味するのでしょうか?具体的には:
「同じボックス内の演算子は左から右にグループ化されます (比較を除く...)」 -- 比較は左から右にグループ化されませんか?
比較が左から右にグループ化されない場合、代わりに何をしますか? それらは「グループ」ではなく「チェーン」ですか?
比較が「グループ」ではなく「チェーン」の場合、「チェーン」と「グループ」の違いは何ですか?
比較演算子が右から左ではなく左から右に連鎖していることを示す例は何ですか?