问题标签 [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# - F# 匹配两个值

我对 F# 很陌生,我想用 (match ... with ...) 语法比较两个值

当我尝试像这样比较两个值时会出现问题:

我收到一条警告,永远无法到达代码的“| _ -> y”部分。为什么是这样?

我知道我可以执行以下操作以使该功能按我想要的方式工作:

这也有效

我只是好奇为什么我不能这样做,以及 match 是如何工作的。

0 投票
8 回答
5598 浏览

string - 如何在字符串列表/数组中找到相似的模式

我正在寻找在字符串列表或数组中查找匹配模式的方法,特别是在 .NET 中,但来自其他语言的算法或逻辑会有所帮助。

假设我有 3 个数组(或者在这种特定情况下为 List(Of String))

我想报告以下比赛的发生情况

...以及任何其他人。

我正在使用它来解决问题,而不是专门制作它的商业产品,并且宁愿不手工完成(有大约 100-200 个项目的 110 个列表)。

是否有任何算法、现有代码或想法可以帮助我找到所描述的结果?

0 投票
4 回答
2221 浏览

c++ - Levenshtein 算法:如何满足这个文本编辑要求?

我正在使用 levenshtein 算法来满足这些要求:

当找到一个包含 N 个字符的单词时,在我的字典数据库中建议作为更正的单词是:

与找到的单词有1个字符差异的每个N个字符的字典单词。示例:找到的单词:bearn,字典单词:bears

每个 N+1 个字符的字典单词,其中 N 个字符等于找到的单词。示例:找到的单词:bear,字典单词:bears

每个包含 N-1 个字符的字典单词,其中 N-1 个字符等于找到的单词。示例:找到的词:熊,字典词:熊

我在 C++ 中使用这个 Levenshtein 算法的实现来查找单词的 Levenshtein 编号何时为 1(这是所有三种情况的 Levenshtein 编号),但是我该如何选择要建议的单词呢?我读过有关 Boyer-Moore-Horspool 和 Knuth-Morris-Pratt 的文章,但我不确定它们中的任何一个有什么帮助。

0 投票
5 回答
1857 浏览

sql - T-SQL 模式匹配

我试图找到一种方法来通过使用另一个表中的“多值”管道分隔列作为 WHERE 子句来查询数据行。SQL 服务器 2005

这是我对问题的最佳描述:

想象一个用管道分隔的列设置为像 @LIST = 'Bob|Mary|Joe' 这样的变量

然后我试图找到这样的匹配

但扩展为

这将返回所有 Bob、Mary 和 Joe 条目。谢谢你的帮助。

0 投票
4 回答
4704 浏览

php - PHP 方法在没有数据库查询的情况下执行 SQL LIKE 匹配?

我想将输入字符串与我的 PHP 页面匹配,就像 SQL (MySQL) 中的 LIKE 命令完成的匹配一样,以保持其他搜索的一致性。因为(我见过但不理解)一些 PHP 语法包括 SQL 命令,我想知道这是否可能?

这样做的原因是我现在正在搜索关键字与数据库中存储在序列化数组中的字段,我必须在 PHP 中取消序列化并根据数组的结构进行搜索。我不能对表进行查询,只需要查询的匹配能力。否则我需要找到一个替代的匹配例程,这将是不一致的。我不能回去重新构建数据库,因为这在规范中没有预料到。是的,我需要一个丑陋的黑客,但我正在寻找最优雅的。

如果不可能,我可以使用任何匹配用户输入文本的建议作为关键字与存储的文本。

编辑(澄清):我的主要问题是我没有彻底掌握 LIKE 命令的工作原理(只是复制代码),并且由于关键字暗示某种程度的模糊性,我希望如果我切换到这种模糊性保留一个正则表达式。我对正则表达式更好,只是对喜欢不太好。我的查询是“LIKE 'matchme%'”

0 投票
3 回答
2868 浏览

oop - Scala 的模式匹配是否违反了开放/封闭原则?

如果我添加一个新的案例类,这是否意味着我需要搜索所有模式匹配代码并找出需要处理新类的位置?我最近一直在学习这门语言,当我读到一些支持和反对模式匹配的论点时,我一直对应该在哪里使用它感到困惑。请参阅以下内容:

专业版: Odersky1Odersky2

缺点: 比斯特

每种情况下的评论也都很好。那么模式匹配是令人兴奋的东西还是我应该避免使用的东西?实际上,我想答案是“这取决于您何时使用它”,但是它有哪些积极的用例,哪些是消极的用例?

0 投票
5 回答
1368 浏览

parsing - 在 F# 中针对列表开头进行模式匹配的更简单方法

我正在尝试在 F# 中编写一个字符串处理函数,如下所示:

我对几个元素的模式匹配表达式有点难看(整个'-' :: '-' :: '>'事情)。有没有办法让它变得更好?另外,如果我要处理大文本,我正在做的事情是否有效?还是有其他方法?

澄清:我的意思是,例如,能够写出这样的东西:

0 投票
4 回答
5987 浏览

compiler-construction - Erlang 编译器是如何实现模式匹配的?

我想知道通常如何实现模式匹配。例如,在 Erlang 中,您认为它是在字节码级别实现的(它有一个字节码以便它有效地完成)还是由编译器生成为一系列指令(一系列字节码)?

这是一个非常有用的东西,我只需要将它放入我正在构建的玩具语言中。

0 投票
6 回答
29179 浏览

image-processing - 基于几何形式检测图像上的物体

我对图像处理有了基本的了解,现在正在深入研究冈萨雷斯的《数字图像处理》一书。

当给定图像和感兴趣对象的近似形式已知(例如圆形、三角形)时,在图像上找到该对象的最佳算法/方法是什么?

物体可能会稍微变形,所以蛮力方法无济于事。

0 投票
3 回答
779 浏览

oop - 在 OCaml 的 OOP 构造中动态确定类型

我正在学习 OCaml 的 OOP 结构并在今天部分实现,直到我意识到我不知道如何在不使用对象外部的 type 关键字的情况下表示多态匹配语句。

是否可以即时确定传入的对象类型?