gpt4 book ai didi

haskell - 在 Haskell 中哪个更有效;模式匹配或嵌套 if/case 语句?

转载 作者:行者123 更新时间:2023-12-04 01:26:33 25 4
gpt4 key购买 nike

我只是对 Haskell 中模式匹配的效率感到好奇。什么是模式匹配比嵌套更好的简单案例if/case陈述然后相反?

谢谢你的帮助。

最佳答案

在 Haskell,case和模式匹配有着千丝万缕的联系;你不能没有另一个。 if p then e1 else e2case p of { True -> e1; False -> e2 } 的语法糖.由于这些原因,我认为不可能产生您要求的示例;在 Core Haskell 中,一切都等价于 case .

在 ML 系列的语言中,优化器通常可以通过复杂的模式匹配来完成令人印象深刻的事情。这对 Haskell 编译器来说更难;由于惰性评估,模式匹配编译器不允许重新排序某些测试。换句话说,如果你嵌套 case以不同的方式声明,你可能会得到不同的性能,但在 Haskell 中你也会得到不同的语义。所以通常编译器不会弄乱它。

至于编写自己的代码的方式,可以肯定地假设具有最少 case 表达式的代码是最好的(请记住,一个 if 相当于一个 case 表达式)。

关于haskell - 在 Haskell 中哪个更有效;模式匹配或嵌套 if/case 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/426953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com