gpt4 book ai didi

haskell - 我可以在 Haskell 上使用 let in 守卫吗?

转载 作者:行者123 更新时间:2023-12-02 16:46:25 26 4
gpt4 key购买 nike

现在我有一个错误,指出引用“|”的输入“|”上出现解析错误在 if 语句之前。我也不确定是否可以像下面的代码一样使用 let in 守卫。下面的代码是我的问题的示例,请帮助纠正我的错误,先谢谢您!

func x y
| let
sum = x + y
mult = x * y
| if sum == 3
then do
sum+=1
else if mult == 5
then do
mult -=1

最佳答案

事实上,Haskell2010允许let表达式出现在守卫中。查看报告here|let declsdecls 中定义的名称引入到环境中。

对于您的情况,我们可以写

fun x y 
| let sum = x + y, sum == 3 = Just (sum + 1)
| let mult = x * y, mult == 5 = Just (mult - 1)
| otherwise = Nothing

关于haskell - 我可以在 Haskell 上使用 let in 守卫吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52801691/

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