问题标签 [pattern-guards]
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.
haskell - 如何让 Haskell 中的函数取决于其参数的类型?
我尝试编写一个变体show
,将字符串与 的其他实例不同Show
,不包括 " 并直接返回字符串。但我不知道该怎么做。模式匹配?警卫?我找不到任何关于在任何文档中。
这是我尝试过的,但无法编译:
haskell - 如何在状态单子的字段上进行模式匹配?
a
是否可以使用模式匹配/防护来编写函数?
我试着a
写成
但得到了错误:
functional-programming - 模式匹配中的 OCaml "with" 保护
我在code.google.com上阅读了有关模式保护的信息,其中显示了这种类型的保护:
然而,在 OCaml 4.02 中,似乎不起作用(Syntax error: pattern expected.
),所以问题是:有一种解决方法可以在模式匹配中实现这种绑定吗?我想写这样的东西
提前谢谢,干杯。
haskell - 不知道为什么这个模式保护匹配
学习 Haskell,我不确定为什么我没有得到预期的结果,给定这些定义:
我写了这个函数
然而:
如果我专门为 Integer 编写一个版本:
然后我得到了预期的结果。
为什么(Lit mulId) <- x
即使 x 不是 (Lit 1) 也匹配?
haskell - 警告模式保护并非详尽无遗,即使它是
当使用带有模式保护的模式匹配并且所有警告都打开时,我观察到一个有趣的行为
即使flipMood
并且flipMood'
几乎在做同样的事情,我也会收到以下错误消息:
因此需要添加一个 catch all case 比如
来满足穷举检查器。
Core 似乎很好,这两个函数的行为相同:
关闭优化后,我得到以下核心输出,这似乎可以解释这种行为:
为什么会这样?我错过了什么吗?
亲切的问候, raichoo
haskell - 在 Haskell 中是否有类似于 sub-guard 的东西?
我正在编写一个关于音程分类的程序。概念结构相当复杂,我会尽可能清楚地表示出来。前几行代码是一个可以正常工作的小片段。第二个是满足我简洁需求的伪代码。
是否有一种编程结构可以像下面的伪代码那样简化代码?
预先感谢您的建议。
haskell - Haskell:表达式上下文中的模式语法:_
我是 Haskell 的新人。这是我的程序:
编译器显示:表达式上下文中的模式语法:_。当我只使用没有防护装置的情况时,它可以工作。为什么它在警卫内不起作用?
erlang - Erlang/Elixir 守卫和 arity
有没有办法在不查看源代码的情况下查看函数的守卫?
给定一个示例函数(在 Elixir 中):
在没有访问源代码的情况下,如何确定在 divide/2 上有一个守卫,以及如何找到有关该守卫的信息或该守卫对模式匹配的期望?
我在 Ruby Conf 2014 上观看了 Chris McCord(Elixir 的 Phoenix 框架的创建者)的演讲。在演讲中,Chris 正在描述守卫,有人问是否有一种方法可以检查函数以显示该函数的守卫。
这是谈话中的问题:
https://www.youtube.com/watch?v=5kYmOyJjGDM&t=5188
该问题在视频的 t= 时间后不久提出。
haskell - 模式类型签名中建议的 ScopedTypeVariables
我开始编写 Haskell 代码。我尝试使用 Guards 编写斐波那契函数 -
我收到了这个错误:-
非法类型签名:'(Num z, Ord z) => z -> z fibo d' 也许您打算在模式类型签名中使用 ScopedTypeVariables
然而,另一个函数 - 复制我以类似的方式编写,编译和工作正常。我可以用另一种方式写斐波那契,但我想知道错误是什么
haskell - Haskell 函数检查数字是否为奇数,而不使用奇数函数
任何人都可以帮助我吗?我正在尝试编写一个函数来检查 x 是否为奇数,而不使用奇数函数。像这样它不起作用,但我不知道为什么。
错误