問題タブ [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 に答える
464 参照

f# - F#は拡張タプルとしてアクティブパターンに一致します

サブセットの下に赤い波線があるdiffで次のエラーが発生します。
Type mismatch. Expecting a Range -> Choice but given a Range * Range -> Choice

fstとsndを使用する必要がないように、サブセットの一致に追加できるある種の型注釈はありますか?そうでない場合、この構文をサポートする意図はありますか?

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

f# - 非静的メンバーとしての F# アクティブ パターン

非静的なパブリック メンバーのアクティブ パターンが許可されているかどうかはわかりませんが、コンパイラが文句を言うことなくそれらを定義できます。それらが許可されている場合、1 つに一致するための構文は何ですか? コンパイラは、FooBar2.doSomething の Foo の型の不一致を示しています。'a -> Choice<'b,'c>与えられた期待'a -> 'd -> Choice<unit,unit>

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

list - F#アクティブパターンリスト.filterまたは同等のもの

タイプの記録があります

明らかに、tradeLegsはトレードの一種です。レッグは決済されているか、決済されていない(または決済されていないが価格が確認されている)可能性があります-したがって、アクティブパターンを定義しました:

次に、取引が決済されているかどうかを判断します(LegIsSettledパターンに一致するすべてのレッグに基づいて:

このアクティブパターンの使用にはいくつかの利点がありますが、リストのいずれかのアイテムがアクティパターンに一致する(または一致しない)かどうかを確認するためのより効率的な方法があると思います。それと、List.existを使用します。

質問は2つあります:

  1. これを表現するためのより簡潔な方法はありますか?
  2. 機能/表現を抽象化する方法はありますか

    /li>

そのような

そのような私は書くことができました(私はこのデザインパターンを再利用しているので):

考え?

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

f# - F#アクティブパターンのオーバーロード

私はF#とアクティブなパターンにかなり慣れていないので、説明できない異常に遭遇しました。

これはコンパイルされません。微調整を加えるだけで意図したとおりに機能させることができますが、何が起こっているのか正確にわからないため、少し緊張します...2番目のパターンの名前を「(| NoBet | Bet1 | Pass1 | )」と関連するパターンがコード全体で変更された場合、それは機能しますが、これに型の不一致の例外がある理由はわかりません。

また、ほとんど同じであるが完全ではない2つのアクティブなパターンを処理する良い方法はありますか?一般的なものを一緒に因数分解する方法があるはずのようです。(補足として、コピー/貼り付けでインデントが台無しになっているように見えます。これはすべてモジュールEvalの一部です)。

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

f# - 何かが特定のタイプではない場合にパターンマッチングする方法

私たちは皆、何かが特定のタイプである場合のパターンマッチングに慣れています。

しかし、何かが特定のタイプではない場合、どうすればケースを一致させることができますか?例えば、

ありがとう!

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

xml - F# による Xml の逆シリアル化

.net オブジェクトに変換したい Web サービスから次の xml を取得します。

これは私がこれまでに持っているものです:

ご覧のとおり、いくつかの要素は異なる要素内で繰り返されており、サンプル xml で確認できるように、要素にすべての要素が含まれていない場合があります。この同じ Web サービスは、他のタイプの応答でもこれらの同じ要素の多くを再利用します。アクティブなパターンを使用して、取得した xml をオブジェクトに逆シリアル化する一般的な方法を作成することはできますか? この Web サービスは、属性を使用して情報を送信することはないようです。すべてが要素内の要素であるため、この問題が容易になる可能性があります。私がこれを間違った方法で行っている場合は、お気軽にもっと良い方法を提案してください。

前もって感謝します、

ボブ

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

regex - F#正規表現とアクティブパターンの一致のマッピング

正規表現でのアクティブパターンの使用に関するこの便利な記事を見つけました:http: //www.markhneedham.com/blog/2009/05/10/f-regular-expressionsactive-patterns/

この記事で使用された元のコードスニペットは次のとおりです。

これにより、少なくとも1つのURLが見つかったかどうか、およびそのURLが何であったかがわかります(スニペットを正しく理解している場合)

次に、コメントセクションで、ジョエルはこの変更を提案しました。

別の方法として、特定のグループが一致する場合とそうでない場合があるため、次のようになります。

または、グループにラベルを付けて、名前でアクセスしたい場合もあります。

これらすべてを組み合わせようとした後、私は次のコードを思いつきました。

インタラクティブセッションでコードを実行すると、次のように出力されます。

私が達成しようとしている結果は、次のようになります。

基本的に、見つかった各一意の一致のマッピングと、それに続く特定の一致する文字列がテキストで見つかった回数のカウント。

私がここで間違った道を進んでいると思われる場合は、まったく別のアプローチを提案してください。私はアクティブパターンと正規表現の両方に少し慣れていないので、これを修正するためにどこから始めればよいのかさえわかりません。

また、これは基本的にC#でF#に変換して行うことです。

これは実行時にこれを返します:

これは基本的に私が探している結果ですが、これを行うための機能的な方法を学ぼうとしているので、アクティブなパターンを含める必要があると思います。私の最初の試みよりも理にかなっている場合は、これを「機能化」してみてください。

前もって感謝します、

ボブ

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

f# - 複雑な式をパラメーター化されたアクティブパターンに渡すにはどうすればよいですか?

アクティブパターン「式」を次のように定義しました。

今、私はそれをこのように使おうとしています:

ただし、これにより「エラーFS0010:パターン内の予期しないシンボル'-'」が発生します。それは修正可能ですか?

私がやろうとしているのは、次の方程式の解を明確に書くことです。

max(wl --cw * .25、0)+ max(wr --cw * .25)+ cw * columnCount = ActualWidth

ここで、cwは唯一の変数です。

もっと良い方法を提案できますか?

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

f# - アクティブなパターンでの typeof<_> の使用

次の工夫されたアクティブ パターンが与えられます。

以下:

エラーが発生します:

パターン マッチングでの予期しない型の適用。'->' またはその他のトークンが必要です。

しかし、これは機能します:

typedefof(またはtypeof) がここで許可されていないのはなぜですか?

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

f# - アクティブなパターンとメンバーの制約

インライン関数の場合、次のような制約を作成できます。

引数に特定の演算子またはメンバーが必要です。似たようなものに基づいて一致させる方法はありますか?

上記のようにインライン関数の制約に一致するメソッドに渡された引数がその関数をトリガーし、他のすべてがエラー管理の一部として終了するアクティブなパターンを作成したいと考えています。