問題タブ [guard-clause]

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.

0 投票する
2 に答える
606 参照

f# - F# のタプルに一致する不完全なパターン

ポイントを定義します

そしてシリーズ

ここで、このリストのポイントは時間順に並べられていると想定しています。

2 つの時系列を圧縮しようとしています。一般に、それらには同じ時間のポイントがありますが、いずれかのポイントが欠落している可能性があります。

以下のコードで不完全なパターン一致の警告が表示される理由は何ですか?

こう書くと警告が出ないのですが、末尾再帰ですか?

0 投票する
2 に答える
252 参照

f# - 型テストとリテラルを組み合わせたパターン

この質問のアクティブなパターンは、VS 2012 RTM にアップグレードした後、コンパイルに失敗します。型テストを実行し、単一のパターン内でリテラルを照合する方法を提供します。例えば:

これはアクティブなパターンなしで実行できますか? whenガードを使用できることはわかっていますが ( ) :? string as s when s = ""、他のパターンと組み合わせることはできません。

0 投票する
3 に答える
1356 参照

prolog - プロローグのガード条項?

それらは存在しますか?それらはどのように実装されていますか?

SWI-Prolog(、など)のcoroutining述語には、ガード機能あります。それらは、好ましいPrologプログラミングスタイルにどのように適合しますか?freezewhendif

私は論理プログラミング(Prologとまったく)に非常に慣れておらず、それが純粋に宣言型ではなく、非常に単純な場合でも手続き上の考慮が必要であるという事実に多少混乱しています(またはの使用に関するこの質問を\==dif参照してください)。重要なものが欠けていますか?

0 投票する
3 に答える
28670 参照

haskell - Haskell で複数の where ステートメントを使用する方法はありますか

1 つの関数に 3 ~ 4 の where ステートメントを記述しようとしましたが、エラーが発生して実行できませんでした。そのようなことをしようとしました。

私はコードが少し役に立たないことを知っていますが、私が何を意味するかについての例を示すためにこれを書きました.

私を助けることができる人はいますか?前もって感謝します。

0 投票する
1 に答える
4355 参照

f# - "when" を使用すると、F# の不完全なパターンがこの式に一致します..なぜですか?

私はこの単純な F# 関数を持っています:

ただし、F# コンパイラでは、「この式のパターン マッチが不完全です」という警告が表示されます。この場合、すべてのケースがすべてのパターンをカバーする必要があります。

Chris Smith 著の『Programming F#』の第 1 版の「パターン マッチング」セクションにも同様の例があります。F# の新しいバージョンでは何かが変更される可能性がありますか?

0 投票する
1 に答える
149 参照

f# - タプル内の項目がパターンマッチで同じ値かどうかを識別する唯一の方法は when ガードですか?

次の関数を検討してください。

私がやりたいのは、に置き換えること| (alpha, red, green, blue) when red = blue && red = green && red <> 255uy ->です| (alpha, value, value, value) when value <> 255uy ->。しかし、それを行うと、'value' is bound twice in this patternエラーが発生します。

コンパイラを満たすガードを単純化するために行を書き直す方法はありますか?

0 投票する
4 に答える
1113 参照

f# - let バインディングに対する F# パターン マッチ

F# で let バインディングに対して直接パターン マッチすることは可能ですか?

たとえば、これは警告なしでコンパイルされます。

次の例では、 and に一致する行に対して「このルールは決して一致しません」という警告が表示されますkey2_

これは、let バインディングは不変ですが、C#const変数とは異なるためでしょうか?

0 投票する
2 に答える
360 参照

f# - ネストされたパターン マッチングの簡素化 F#

私は F# で単純な式パーサーを作成しています。各演算子について、特定の数のオペランドのみをサポートしたいと考えています (たとえば、Modulo の場合は 2 つ、If の場合は 3 つ)。ここに私が持っているものがあります:

内部リストの一致を取り除くか、単純化したいと思います。これを達成するための最良の方法は何ですか?複数のガードを使用する必要がありますか?