問題タブ [pattern-matching]

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

f# - 2 つの値を持つ F# マッチング

私はF#にかなり慣れていないので、2つの値を (match ... with ...) 構文で比較したかった

次のように 2 つの値を比較しようとすると、問題が発生します。

コードの「| _ -> y」の部分に到達しないという警告が表示されます。どうしてこれなの?

関数を希望どおりに機能させるために、次のことができることを知っています。

これも同様に機能します

なぜそれができないのか、そしてマッチが実際にどのように機能するのかが気になります。

0 投票する
8 に答える
5598 参照

string - 文字列のリスト/配列で同様のパターンを見つける方法

文字列のリストまたは配列、特に .NET で一致するパターンを見つける方法を探していますが、他の言語のアルゴリズムまたはロジックが役立つでしょう。

3 つの配列 (または、この特定のケースでは List(Of String)) があるとします。

の試合の発生を報告したい

...そしてその他。

私はこれを使用して問題のトラブルシューティングを行っていますが、具体的に商品化するためではなく、手動で行うことは避けたいと考えています (約 100 ~ 200 項目の 110 のリストがあります)。

説明されている結果を見つけるのに役立つアルゴリズム、既存のコード、またはアイデアはありますか?

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

c++ - レーベンシュタインアルゴリズム:このテキスト編集要件を満たすにはどうすればよいですか?

これらの要件を満たすために、レーベンシュタインアルゴリズムを使用しています。

N文字の単語を見つけるとき、私の辞書データベースで修正として提案する単語は次のとおりです。

見つかった単語と1文字の違いがあるN文字のすべての辞書単語。例:見つかった単語:bearn、辞書の単語:bears

見つかった単語と等しいN文字を持つN+1文字のすべての辞書単語。例:見つかった単語:クマ、辞書の単語:クマ

見つかった単語と等しいN-1文字を持つN-1文字のすべての辞書単語。例:見つかった単語:クマ、辞書の単語:クマ

このC++でのレーベンシュタインアルゴリズムの実装を使用して、単語のレーベンシュタイン数が1(3つの場合すべてのレーベンシュタイン数)であるかどうかを調べていますが、提案する単語を選択するにはどうすればよいですか?Boyer-Moore-HorspoolとKnuth-Morris-Prattについて読みましたが、どちらがどのように役立つかわかりません。

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

php - データベースクエリなしでSQL LIKEマッチングを実行するPHPの方法は?

他の検索の一貫性のために、SQL (MySQL) の LIKE コマンドによって行われる一致と同じ方法で、入力文字列を PHP ページに一致させたいと考えています。(私は見たが理解していない)PHP構文の一部にはSQLコマンドが含まれているので、これが可能かどうか疑問に思っていますか?

この理由は、シリアル化された配列に格納されている DB 内のフィールドに対してキーワードの検索を実装しているためです。配列の構造に応じて PHP でシリアル化を解除し、検索する必要があります。テーブルに対してクエリを実行することはできません。クエリの一致機能が必要なだけです。それ以外の場合は、一貫性のない別のマッチング ルーチンを見つける必要があります。これは仕様では予想されていなかったため、DB に戻って再構築することはできません。はい、醜いハックが必要ですが、最もエレガントなものを探しています。

それが不可能な場合は、ユーザーが入力したテキストをキーワードとして保存されたテキストと照合するという推奨事項を使用できます。

編集(明確化のため):私の主な問題は、LIKEコマンドがどのように機能するか(コードをコピーするだけ)を完全に把握していないことです.キーワードはある程度の曖昧さを暗示しているため、正規表現。私は正規表現の方が優れているだけで、好きなものはあまり得意ではありません。私のクエリは「LIKE 'matchme%'」です

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

oop - Scala のパターン マッチングは Open/Closed Principle に違反していますか?

新しいケース クラスを追加する場合、すべてのパターン マッチング コードを検索して、新しいクラスを処理する必要がある場所を見つける必要があるということですか? 私は最近この言語を学んでおり、パターン マッチングの賛否両論を読んでいるうちに、パターン マッチングをどこで使用すべきかについて混乱していました。以下を参照してください。

プロ: Odersky1Odersky2

短所: ビースト

コメントもそれぞれのケースでかなり良いです。では、パターン マッチングはわくわくするものですか、それとも使用を避けるべきものですか? 実際、「使うタイミング次第」という答えになると思いますが、ポジティブなユースケースとネガティブなユースケースは何ですか?

0 投票する
5 に答える
1368 参照

parsing - F# でのリストの開始に対するパターン マッチングのより簡単な方法

次のような文字列処理関数を F# で記述しようとしています。

いくつかの要素に対する私のパターン マッチング式は少し醜いです (全体'-' :: '-' :: '>')。良くする方法はありますか?また、大きなテキストを処理する場合、私が行っていることは効率的ですか? それとも別の方法がありますか?

明確化:私が言いたいのは、例えば、次のようなものを書くことができるということです:

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

compiler-construction - Erlang コンパイラはどのようにパターン マッチングを実装しますか?

パターンマッチングは通常どのように実装されているのだろうか。たとえばErlangでは、バイトコードレベルで実装されていると思いますか(効率的に実行できるようにバイトコードがあります)、それともコンパイラによって一連の命令(一連のバイトコード)として生成されますか?

これは非常に便利なので、作成中のおもちゃの言語に組み込む必要があります。