gpt4 book ai didi

haskell - Haskell 中的守卫,使用检查执行操作

转载 作者:行者123 更新时间:2023-12-02 12:08:44 24 4
gpt4 key购买 nike

所以我在 Haskell 中搜索了处理“if”语句的不同方法,并对守卫有疑问,假设我有一个元组并想要执行 +、-、*、/检查条件:

给定 (x,y) if x < y only +,* 因为我只想要整数,此外检查除法以便 x mod y == 0 或不,这可以编译,但我可以-让它运行

operaciones (x,y) = (x,y)
x,y | x < y = [(x, y, '+', x+y), (x, y, '*', x*y)]
| (x > y) && (x `mod ` y == 0) = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y) , (x, y, '/', x/y)]
| (x > y) && (x `mod ` y /= 0) = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y)]
| otherwise = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y) , (x, y, '/', x/y)]

我的想法来自

Haskell: Multiple Case Statements in Single Function

但失败了,否则是 if x == y

最佳答案

你所写的不是合法的语法。

您可能想要这个:

operaciones (x,y)
| x < y = [(x, y, '+', x+y), (x, y, '*', x*y)]
| (x > y) && (x `mod ` y == 0) = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y) , (x, y, '/', x/y)]
| (x > y) && (x `mod ` y /= 0) = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y)]
| otherwise = [(x, y, '+', x+y), (x, y, '*', x*y), (x, y, '-', x-y) , (x, y, '/', x/y)]

关于haskell - Haskell 中的守卫,使用检查执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840280/

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