問題タブ [expression]
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.
expression - 式をひねりを加えた連言標準形に変換する
基本的にデータソースとして機能する、インターフェイスする必要のあるライブラリがあります。データを取得するときに、特別な「フィルター式」をそのライブラリに渡すことができます。このライブラリは、後でSQLWHERE部分に変換されます。これらの表現はかなり制限されています。それらは連言標準形でなければなりません。好き:
もちろん、これはプログラミングにとってあまり快適ではありません。そこで、任意の式を解析してこの正規形に変換できる小さなラッパーを作成したいと思います。好き:
次のようなものに翻訳されます:
Ironyライブラリを使用して、式をツリーに解析できます。今、私はそれを正規化する必要があります、しかし私は方法がわかりません...ああ、また、ここにひねりがあります:
- 最終的な式には、NOT演算子を含めることはできません。ただし、演算子を逆演算子に置き換えることで、個々の項を逆にすることができます。だから、これはOKです:
(not A or not B) AND (not C or not D)
しかし、これはそうではありません:
not (A or B) and not (C or D)
- 式は実質的に同一のSQLWHEREステートメントに変換されるため、式をできるだけ単純にしたいので、複雑なステートメントは実行速度を低下させる可能性があります。
linq - 外部結合式ツリーを実装するには?
式の構文を使用してクエリを実装する必要があります (コンパイル時の型がわからないため)。たとえば、次のようなクエリを実行します。
次のようにグループ結合部分を実装する方法を見つけました。
しかし、この構文を使用して残りのクエリを記述する方法がわかりません。誰でも私を助けることができますか?
javascript - 式の解析: トークン化する方法
Javascript コードで Java/Javascript のような式をトークン化することを検討しています。入力は式を含む文字列になり、出力はトークンの配列である必要があります。
このようなことをするためのベストプラクティスは何ですか? 文字列を反復する必要がありますか、それともこれを行う正規表現はありますか?
サポートできるようにするためにこれが必要です:
- 数値および文字列リテラル (一重引用符と二重引用符で囲み、引用符でエスケープ)
- 基本的な数学およびブール演算子と比較演算子 (+、-、、/、!、および、not、<、> など)
- 再帰によるオブジェクト アクセスのドットおよびブラケット表記 (foo.bar、foo['bar']、foo[2][prop])
- ネスト付き括弧
- 三項演算子 (foo ? bar : 'baz')
- 関数呼び出し (foo(bar))
eval()
セキュリティ上の理由から、またはそのようなものを使用することは特に避けたいと思います。その上、eval()
とにかく私のために表現をトークン化しません。
parsing - ブール方程式のリファクタリング
そのようなブールルール/式があるとしましょう
あなたはそれをできるだけ多くのANDのみの式に変換したいのです
ORを減らしているだけなので、
これを行うブール代数のプロパティはありますか?
dynamic - 亜音速動的クエリ式
私は亜音速の世界に住もうとしていて、亜音速の表現に関しては亜音速の女の子であることにいくつかの問題を抱えています。
Subsonic Query(ConditionA OR ConditionB)およびConditionCを読んだ後、この種の問題を抱えているのは私だけではないようですが、誰か(全能の強盗??)がこれに答えられることを願っています。
ループ条件に基づいてクエリで式を作成しようとしています。私が(擬似コードで)達成したいのは次のようなものです:
私の主な問題は、式の中にある各条件が異なる列であるということです。それ以外の場合は、.In()を使用できます。また、式の外に出てはいけないように、外に追加の検索条件(かなりの量を読む)があります。
強く型付けされた亜音速子宮の温かみのある心地よさを残したくないのですが、この場合は私もそうかもしれないと思います...もし必要なら、手で亜音速クエリに追加する方法があります条件を入力したので、クエリ内の他のすべてのコードを変更する必要はありません(現在亜音速の土地に住んでいる多くのビジネスロジック)
いつものように、助けてくれてありがとう
c# - Like の System.Linq.Expressions.Expression を作成する方法は?
このソースからフィルタリング可能な BindingList を作成しました。それはうまくいきます:
すべきことをします。==
内部は、式or!=
を に変換するパーサーのように機能しSystem.Linq.Expressions.Expression
ます。この場合、==
となりSystem.Linq.Expressions.Expression.Equal
ます。
残念ながらSystem.Linq.Expressions.Expression
、 like 演算子が含まれていないため、これを解決する方法がわかりません。
初期コードは次のようになります。
次に、私が望むことを行う式を作成しました。
例えば
しかしbinaryOpFactory
、これが必要です:
事前定義された式は、まさに次のようです。
式を変換する方法を誰か教えてもらえますか?
java - 挿入された文字列をコンパイル可能な式に変換する
私はどういうわけかJavaに慣れていないので、私の質問は些細なことに思えるかもしれませんが、私の本のどこにも答えが見つかりません。
算術式(例:(2 * x + y))を入力するユーザーとのダイアログを開始し、その式の結果を出力したい(xとyの値を指定した場合)
ユーザーが挿入した文字列を変換できないため、xとyの算術式として機能し、出力の値を定義します。
TIA JMT
php - PHP の汎用宣言型式ビルダー
皆さん、
私は、多くのアプリケーションに共通していると確信しているPHP5 UIの一部を構築しようとしています。基本的に、これはユーザーが次のように論理演算子 (AND/OR) を介して結合された式を指定できるようにする式ビルダーです。
- FieldX > 3 AND FieldY = 5
- FieldY = "bob" かつ FieldZ が null ではない
- FieldX > '5/23/2007' OR (FieldY = 5 AND FieldY が null でない)
理想的には、このようなシステムにより、プログラマーとして、ユーザーが選択できるパラメーター (列) のリストとそれぞれのデータ型を指定できるようになります。また、そのような式を定義するための使いやすいインターフェイスを提供します。各行に複数のピッカーがあるテーブルのようなものを想像しています。
[列] [条件] [値] [AND/OR] [列] [条件] [値] [AND/OR] ...
そのようなことをするオープンソースのコンポーネントを知っていますか? それとも、この種の機能の一部ですか?
visual-studio - Visual Studio 2008 で式の評価/リダクションを実行する
Visual Studio で数式の評価/削減を行うことは可能ですか?
たとえば、「-0.005 + -0.345」と入力した場合、Visual Studio でそれを削減するにはどうすればよいですか (つまり、削減に置き換えます)。マクロを書かなければなりませんか?もしそうなら、このタイプの式の削減を行う既存のマクロはありますか?
明確にするために、式を強調表示して、縮小された結果に置き換えられるようにしたいと考えています。多くの人が即時ウィンドウを提案していますが、それで十分かどうかわかりません。
編集これは編集中またはデバッグ中ではないことを指摘する必要があります。イミディエート ウィンドウは、ほとんどまたはまったく役に立ちません。また、これは言語に中立な質問だと思います。私が投稿したものに代わるマクロを見てみたいと思っています。
編集1 回...
c++ - 「式クラス」の種類はありますか (C++)
プレイヤーが入力を入力し、いくつかの状態を変更してから、「目標値」が真であるかどうかを確認するゲームを作成しています (明らかに、この説明は非常に単純化されています)。残りの敵の数がゼロに等しい場合、プレイヤーのライフは特定の値を下回っています。単純な「value1比較演算子value2」を保持してチェックできる「式クラス」はありますか? すなわち:
そうでない場合、式クラスを開発する方法について何か提案はありますか?
編集:別の(私が達成しようとしているものの方が多い)例: