問題タブ [active-pattern]

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 投票する
1 に答える
1032 参照

f# - 引数として部分的なアクティブ パターンを渡しますか?

アクティブ パターンを使用して再帰降下パーサーを作成することで F# を学習しています。

すべてのルールまたは部分的なアクティブ パターンをさまざまな方法で組み合わせる必要があるため、アクティブ パターンをパラメーターとして渡す構文に本当に不満を感じています。

次の例は、私が抱えている問題を示しています。

私の主な混乱は、「|」についてのようです オペレーター。柄の種類の一部と思われることもあれば、名前の一部と思われることもあります。

0 投票する
0 に答える
182 参照

f# - マルチケースのアクティブパターンを直接呼び出す

単一のケースのアクティブなパターンを考えてみましょう:

明示的な一致の外で、上記の単一ケースのアクティブ パターンを呼び出すことができます。

次のマルチケースのアクティブなパターンがある場合:

上記のマルチケースのアクティブ パターンを直接呼び出すにはどうすればよいですか? 明らかな方法は機能しません:

上記の要求の理由は、明示的に一致を導入せずに、アクティブなパターンでテストを作成することです。現在、アクティブ パターン |Even|Odd| をテストするには、次の isEven 関数を導入する必要があります。

私ができればいいのですが:

ご協力いただきありがとうございます。

シング

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

f# - F# アクティブなパターンの上書きを避ける

同じオプションを使用して 2 つのアクティブなパターンを作成できないことに気付きましたが、類似したオプションを使用して 2 つのアクティブなパターンを警告なしで作成できます。

したがって、この方法で一致させる場合:

これが起こります:

(|Direct|Indirect|)たとえば、 (route) と(|Alternating|Direct|)(current) のように異なるセマンティック コンテキストが原因で、同じ単語が異なるパターンで表示される可能性がある状況で、既存のアクティブなパターン オプションを誤って上書きしてしまうことを少し心配しています。

どうすればこの状況を回避できますか?

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

f# - F# でのアクティブ パターンの適切な使用

csv 形式の使用状況ログで使用状況イベントを解析するために、アクティブ パターンを使用しています。アクティブなパターン パーツは次のとおりです。ファイル全体の解析はうまく機能し、生成されるシーケンスにはあらゆる種類の UsageEvent が含まれます。

私が抱えている問題は、おそらく ActivePattern を間違った方法で使用していることです。リストをたどって、いくつかのロジックに基づいてツリーを作成したいのですが、解析後にシーケンス内のエントリを一致させる方法がありません。

ループ関数にはstring list. ユニオンに含まれるデータを他にどのように使用できますか、または入力を照合してから通常の型に保存する必要がありますか?

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

compiler-errors - エラー FS0722 を返す複数ケースのパラメーター化されたアクティブ パターン 正確に 1 つの結果を返すアクティブ パターンのみが引数を受け入れることができます

このエラーに関する日本語のページしか見つけられなかったので、ログに記録してここで質問しようと思いました。

次の FSharp アクティブ パターンがある場合 (簡略化された例):

それは完全にコンパイルされ、そのタイプを次のように示します。

しかし、次のように使用しようとすると、エラーがスローされます。

スロー: エラー FS0722: 1 つの結果を返すアクティブなパターンのみが引数を受け入れることができます

それぞれがNone/Some(x)を返す2つの単一ケースのパラメーター化されたアクティブパターンに変えることで解決できますが、なぜそうすることが許可されていないのか、および/または私が使用できる構文があるのか​​ どうか疑問に思っています認識していません。また、なぜコンパイルされるのか疑問に思っていますが、使用できませんか?

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

f# - 判別共用体によるアクティブ パターン マッチング

次の形式の判別共用体をアクティブなパターン マッチングで使用する方法はありますか? 例を見つけることができませんでした。

これは私がやろうとしていることです:

「Some」を 2 番目の方法で使用できないのはなぜですか? 同じことを達成する別の方法はありますか?

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

f# - 関数式内で F# アクティブ パターン マッチング関数を作成する方法は?

この小さなヘルパー関数があります

また、関数インターフェイスでアクティブなパターン マッチング関数 NonEmptyString を使用すると、問題なく動作します。

今問題に。

次のように、いくつかのバリデーターをより複雑な検証制約として組み合わせるとよいでしょう。

's' が 1 つしか許可されていない場合は、関数を組み合わせて、引数 s を 1 つだけ持つことを考えることができます。そして、アクティブパターンマッチング関数はもちろん関数なので、関数合成演算子 >> を適用しますが、ここでは当てはまりません。

問題は、(F# 4.0 で) どうすればそれができるかということです。

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

f# - アクティブ パターンに「インライン」というキーワードを使用するのはなぜですか?

関数にキーワードを使用する理由をまだ理解できませんinline

私がまだ持っていないことは何を私に与えてくれますか?