pattern-matching相关内容

建议在Haskell中始终进行详尽的模式匹配,即使对于“不可能的”案件?

例如,在下面的代码中,我是在模式匹配的情况下对模式进行匹配折叠机的“累加器”。我完全控制了累加器的内容,因为我创建了它(它不是作为输入传递给我的,而是在我的函数中构建的)。因此,我知道某些模式不应该与它匹配。如果我力求永远不会得到“模式匹配是非详尽的”错误,那么我会为它添加一个模式匹配,只是错误与消息“此模式不应该发生”。就像C#中的断言一样。在这种情况下,你会推荐什么样的做法?为什么? 我 ..
发布时间:2018-04-18 15:53:28 其他开发

案例陈述和模式匹配

我在SML中编写了一个任务,我做了一些练习题,我觉得我错过了一些东西 - 我觉得我正在使用太多的 case 语句。以下是我正在做的以及我遇到问题时的问题陈述: 编写一个函数all_except_option,它接受一个字符串和一个字符串列表。如果字符串不在列表中,则返回NONE,否则返回SOME lst,其中lst与参数列表类似,但字符串不在其中。 fun all_except_op ..
发布时间:2018-04-18 15:46:28 其他开发

模式匹配在F#中的幕后如何工作?

我对F#完全陌生(通常是函数式编程),但我看到示例代码中随处可见的模式匹配。我想知道如何模式匹配实际工作?例如,我想象它与其他语言的for循环一样工作,并检查集合中每个项目的匹配。这可能远不是正确的,它是如何在幕后工作的? 解决方案 这要看是什么样的模式匹配你的意思 - 这是相当强大的构造,可以在各种使用方法。但是,我会尝试解释模式匹配如何在列表上工作。您可以编写例如这些模式: m ..
发布时间:2018-04-18 15:44:49 其他开发

关于OCaml中的模式匹配算法

我正在为使用OCaml设计的函数式语言编写一个编译器。我希望我的小语言具有模式匹配功能,但是,我陷入了一种实现它的算法。我深入研究这个问题似乎很复杂。我找不到有关google的相应算法的很多有用信息。如果有人能给我一些提示或指向我的资源,我将不胜感激。或者是否有任何技巧利用OCaml在模式匹配中的能力来解决这个问题,这样我就不需要实现它了?谢谢! 解决方案 有几篇关于OCaml背后的人员编译 ..
发布时间:2018-04-18 15:44:20 其他开发

使用scala模式匹配代替java switch case的好处是什么?

大家都说模式匹配是函数式语言的一大特色。为什么? 我不能简单地使用ifs和切换所有内容吗? 我想理解使用模式匹配而不是常规过程编程的优点ifs和switch case 解决方案 我首先想说明你不要使用模式匹配“替代”switch语句。 Scala没有 switch 语句,它具有的是匹配块,表面上看起来与switch语句非常相似。 使用模式匹配匹配块可以完成 switch ..
发布时间:2018-04-18 15:27:09 Java开发

Scala使用模式匹配获取列表的第一个和最后一个元素

我在列表上进行模式匹配。无论如何,我可以访问列表的第一个和最后一个元素进行比较? 我想做类似的事情。 case List x,_ *,y)if(x == y)=> true 或 case x :: _ * :: y => 或类似的东西... 其中 x 和 y 是列表中的第一个和最后一个元素.. 我该怎么做..任何想法? sc ..
发布时间:2018-04-18 15:27:04 其他开发

Haskell模式匹配 - 它是什么?

我试过寻找一个简单的解释,但我还没有找到一个。 编辑: 有人标记为家庭作业。我不再去上学了,我只是在学习Haskell,我正试图理解这个概念。纯粹是出于兴趣。 解决方案 简而言之,模式就像在数学中定义分段函数一样。您可以使用模式为不同的参数指定不同的函数体。当你调用一个函数时,通过比较实际参数和各种参数模式来选择合适的体。阅读 Haskell简介获取更多信息。 比较: ..
发布时间:2018-04-18 15:17:20 其他开发

模式匹配相同的值

我只是想知道是否可以用函数式编程语言(Haskell / F#/ Caml)的模式匹配工具多次匹配相同的值。 请考虑下面的例子: 加上aa = 2 * a 加上ab = a + b 当函数被两个相似的值调用时,第一个变体会被调用(它将被存储在 更有用的应用程序就是这样(简化AST)。 simplify(Add aa)= Mult 2 a ..

创建新的保护条款

在Elixir中,我将如何为一个函数创建一个新的守卫子句?显然,我已经看到,当语句时,你不能在中调用任何函数,但是能够做到这样的事情会很好: defmodule Player do def play_card(player),do:[] def play_card(player)has_cards(player)球员),做:... #定义has_cards作为守卫子句? en ..
发布时间:2018-04-17 11:30:29 其他开发

PHP的方式来执行SQL LIKE匹配没有数据库查询?

我希望将输入字符串匹配到我的PHP页面,就像SQL(MySQL)中的LIKE命令所做的匹配一样,以实现其他搜索的一致性。既然(我已经看到但不理解),一些PHP语法包括SQL命令,我想知道这是否可能? 原因是我现在实现一个关键字与数据库中存储在序列化数组中的字段的搜索,我必须根据数组结构在PHP中进行反序列化并进行搜索。我无法查询表格,只需要查询的匹配能力。否则,我需要找到一个替代匹配例程,这 ..
发布时间:2018-04-16 16:24:50 PHP