Haskell-如何修改现有函数值
我有一个关于Haskell的基本问题,这让我很困惑,因为我是函数式编程的新手 例如,我有一些简单的函数Haskell-如何修改现有函数值,haskell,Haskell,我有一个关于Haskell的基本问题,这让我很困惑,因为我是函数式编程的新手 例如,我有一些简单的函数 foo 1 1 = 0 foo 1 2 = 1 foo 2 1 = 1 foo 2 2 = 0 我想通过另一个函数根据条件更改函数值(例如,如果值为1,则从1更改为0)。我该怎么做?我来自python,不知何故,我一直认为我可以简单地在函数体中分配新值 我试着这样做: changeValue x y |(foo x y == 1) = foo x y = 0 请给我一点提示
foo 1 1 = 0
foo 1 2 = 1
foo 2 1 = 1
foo 2 2 = 0
我想通过另一个函数根据条件更改函数值(例如,如果值为1,则从1更改为0)。我该怎么做?我来自python,不知何故,我一直认为我可以简单地在函数体中分配新值
我试着这样做:
changeValue x y
|(foo x y == 1) = foo x y = 0
请给我一点提示,因为我觉得这是一个简单的问题,我就是找不到解决办法。谢谢 也许看看有什么帮助?把haskell函数想象成数学函数,这里也没有赋值
无论如何,您可以要求其他函数提供要比较的值,例如,在这种情况下,返回1
:
foo 0 1 = 1
foo x y
| otherfunction x y == 7 = 1
| otherwise = 0
这在哈斯克尔是不可能的。在Python中也不是这样;向我们展示一些实际工作的Python代码,这些代码使用了您实际上想到的那种变异,怎么样?谢谢您的回答。在Python中,我错误地将这些函数看作变量,我想我真正想做的是永久地更改函数,或者更确切地说覆盖它。我只是有点困惑:)