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 请给我一点提示

我有一个关于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
请给我一点提示,因为我觉得这是一个简单的问题,我就是找不到解决办法。谢谢

也许看看有什么帮助?把haskell函数想象成数学函数,这里也没有赋值

无论如何,您可以要求其他函数提供要比较的值,例如,在这种情况下,返回
1

foo 0 1                    = 1
foo x y
  | otherfunction x y == 7 = 1
  | otherwise              = 0

这在哈斯克尔是不可能的。在Python中也不是这样;向我们展示一些实际工作的Python代码,这些代码使用了您实际上想到的那种变异,怎么样?谢谢您的回答。在Python中,我错误地将这些函数看作变量,我想我真正想做的是永久地更改函数,或者更确切地说覆盖它。我只是有点困惑:)