問題タブ [pattern-guards]
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.
haskell - Haskell でのファジー パターン マッチング ディスパッチ
ツリー上で解析コードを書いています。(つまり、スタンフォードの nlp 依存関係ツリー)
基本的に私はこのような機能を持っています:
私が望むのは、ノードから出てくるエッジがある場合、最初のルールにディスパッチするnsubj
ことdobj
です。他に何があるかは気にしません。
エッジが正しい順序で存在する必要があり、さらにエッジが存在する場合は一致しないため、明らかに私の例の関数はこれを行いません。
1 つのアプローチとして、表現力を高めるためにガードを使用することが考えられます。
しかし、それはかなり面倒で、ターゲット ノードのハンドルさえ取得できません。
私のようなグラフにパターン マッチング パーサーを記述する標準的な方法はありますか? それとも、Maybe モナドに基づく何らかの魔法があるのでしょうか..?
if-statement - less.css 変数が true の場合ガード
変数とガードを使用してifステートメントのような動作を作成するためのより良い解決策があるかどうか(または私の解決策が正しいかどうか)は疑問に思います。
ゴール:
- variable が true に設定されている場合、コードをコンパイルします (動作します)。
- 変数が他の値に設定されている場合、コードを無視します (デフォルト、動作します)。
- 最初のコード位置を保持します (機能しません。呼び出されたときにマージさ
.responsive (@responsive);
れます)
私のコード:
erlang - Erlang の「when」での複数のガード
仲間のスタックオーバーフロー担当者、
私は現在Erlangを学んでいます。誰かが私にillegal guard expression
この警備員を手に入れる理由を教えてもらえますか?
add_new_prime(Idx, Primes, Ref) when length(Primes) =:= 0 ; math:sqrt(Idx) < hd(Primes) -> Ref ++ [Idx];
のみを実行して「最適化を解除」した場合add_new_prime(Idx, Primes, Ref) when length(Primes) =:= 0 -> Ref ++ [Idx];
できます。句ごとに複数の「ステートメント」がある例を複数見てきましたが、私のステートメントが機能しない理由がわかりません。
どうもありがとう!
haskell - パターン ガードまたはケース式でのパターンの再利用
私のHaskellプロジェクトには式評価器が含まれています。これは、この質問の目的のために次のように簡略化できます。
これを実装する簡単な方法は、次のcase
ように、再帰的に評価してパターン マッチする式を記述することです。
私には、その定義はややぎこちないように見えるので、次のようにパターン ガードを使用して定義を書き直しました。
この定義は、式に比べてきれいに見えると思いますcase
が、異なるコンストラクターに対して複数のパターンを定義すると、パターンが複数回繰り返されます。
これらの繰り返されるパターンに注目して、パターン マッチングの繰り返しを削減できる構文または構造があることを期待していました。これらの定義を単純化する一般的に受け入れられている方法はありますか?
編集:パターン ガードを確認した後、ここでドロップインの代わりとして機能しないことに気付きました。とを に縮小できる場合は同じ結果にx
なりますが、パターン ガードが一致しない場合は値を縮小しません。et al.の部分式を単純化したいと思います。y
I _
reduce
Add
f# - 引数レベルでマッチングを使用する方法は可能ですか? 警備員?
例えば
エラーなので、好きではない副作用があります。MatchFailureException
私はここで良い副作用があることを知っています:let foo = if false then ()
しかし、警告Incomplete pattern matches on this expression.
は、必要なものを追加できるように教えてくれます。方法がわからない、または可能かどうかはわかりませんか?他の方法で、値を引数として使用できるのはなぜですか?
ところで:私は書くことができることを知っていますWhen b d = if b then d else ()
が、質問はより一般的です。
Haskellに説明を追加
haskell - パターンガードに加えて述語ガードを使用しないのはなぜですか?
パターンガードに加えて述語ガードを使用しないのはなぜですか?
次のようにきれいになります:
あるいは: