問題タブ [boolean-logic]
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.
php - PHP で遅延評価を回避するにはどうすればよいですか?
PHP がブール式を評価する方法について興味深い質問があります。たとえば、
また
$expression1
PHP は最初に、評価結果が かどうかをチェックしtrue
ます。そうでない場合は、$expression2
不要な計算を避けるために単にスキップされます。私が書いているスクリプトには、次のものがあります。
$validator->valid("text")
最初のステートメントが false と評価された場合でも、2 番目のステートメント ( ) を評価する必要があります。PHP に両方のステートメントを常に評価させる簡単な方法があるかどうかお尋ねしたいと思います。ありがとうございました!
refactoring - ブール式をリファクタリングするツール
ブール式をリファクタリングするツールを探しています。のような表現があります。
ツールは、式を単純化できる必要があります。たとえば、上記の例のサブ式「c または d」を抽出します。これを行うことができる無料のコンピューター代数システムはありますか?
現在、式を手動でリファクタリングして、小さな haskell クイックチェック スクリプトで同等性を証明することを考えています。
assembly - アセンブリ条件コードへのアクセス
CF:キャリーフラグ
ZF:ゼロフラグ
私は現在、AT&T構文を使用したLinuxプラットフォームでのIntel x86アセンブリに関する本を読んでいます。この本によると、setbeDの効果は次のようになります。
D ← CF&〜ZF
私はそれを理解しました、しかしそれは単に次のように書くことができます:
D← CF | ZF
これは、CF / ZFが1/1または1/0のいずれかである場合の〜ZF&CFとのみ異なります。どちらがより正確ですか?
sql - 複雑な SQL where 句: ロジックを因数分解するかどうか
要件の変更により複雑になった複雑な SQL where 句があります。ケースには 4 つの基本的なセットがあり、それぞれ他の要因の組み合わせが異なります。(私の意見では) 4 つのケースを where 句の個別のブランチとして保持し、各ブランチで冗長な基準を繰り返す方が読みやすいと思います。しかし、データベース エンジンがそれをどの程度最適化するかはわかりません。
冗長な形式の式を次に示します。実際の基準を文字に置き換えました。A は「分岐」基準で、4 つの形式があります。field='value'
特に断りのない限り、すべての式は の形式です。
A4 を除くすべての A は の形式field in ('value1','value2')
です。Dはfield > 'value'
。G は の形式field not in (subquery)
です。
これが、(私が思うに) 最も冗長でない形式に分解された式です。
私の質問は、この式を最も単純な (冗長性が最も少ない)論理形式に分解する必要があるかどうか、またはより冗長で読みやすい形式のままにしておいてよいかどうかです。対象データベースはSybaseですが、RDMBS全般についての回答が知りたいです。
mask - ビット範囲の置換
CSの2年生なら誰でも答えられるはずですが、頭を包み込むことができないようです...
ビットのセットがあり、一部のビットを別のセットに置き換える必要があります。簡単な例では:
10101010 -オリジナルビットセット
00001111 - 交換位置を示すマスク
00001100 - 新しいビット値
10101100 - 結果のビット セット
もう一つの例:
10101010 -オリジナルビットセット
00110011 -マスク
11111111 - 新しいビット値
10111011 - 結果のビット セット
ビット全体を反復することでこれを行うのは簡単です。
ブール論理 (AND、OR など) を使用してこれを行うことは可能ですか?
c++ - 「ブール短絡」は標準で指示されていますか、それとも主に最適化として使用されていますか?
このことを考慮
私が使用したすべてのコンパイラで、これは非常に安全です。つまり、ブール式の最初の部分はfalseと評価され、2 番目の部分の評価は冗長であるため、 Method() の呼び出しは試行されません。
これは、ほとんどのコンパイラが 2 番目の部分の評価を最適化するためでしょうか、それとも C/C++ 標準から指示された動作でしょうか?
language-features - AND または && を使用する利点は何ですか?
現在、 && と || を使用しています。AND と OR の代わりに、それが私が教えられた方法だからです。ただし、ほとんどの言語では、どちらも有効な構文です。どの言語でも、どちらか一方に利点はありますか?
この質問を検索しようとしましたが、少し難しいです。入力が正しく解釈されません。
haskell - Haskell での論理式の真理値表の生成
最初の部分は、次の型シグネチャを持つ評価関数です。
これは、論理式と代入ペアのリストを入力として受け取り、指定されたブール代入に従って式の値を返します。割り当てリストは、各ペアに変数とそのブール代入が含まれる個別のペアのリストです。つまり、式 A ∧ B と代入 A = 1 および B = 0 を関数に渡す場合、関数は 0 を返す必要があります (これは Digital Logic Design によるもので、0 は false に対応し、1 は true に対応します)。
これは私がこれまでにできたことです:
次の部分は定義するgenerateTruthTable
ことです。これは、論理式を入力として取り、代入ペアのリストのリストの形式で式の真理値表を返す関数です。つまり、式 E = A ∧ B を関数に渡す場合、関数は A = 0、B = 0、E = 0 | を返す必要があります。A = 0、B = 1、E = 0 | A = 1、B = 0、E = 0 | A = 1、B = 1、E = 1。
構文に詳しくないので、リストを返す方法がわかりません。