Haskell 复杂函数类型

a3y*_*yko 0 haskell types function

我正在努力使用的 Haskell 函数具有以下类型

func1 :: (Integer -> Integer -> Integer) -> Integer -> Integer -> Integer

我不确定如何在实际实现中处理括号部分。我知道在这种情况下应该将一个函数传递到输入中。 (Integer -> Integer -> Integer)

Fyo*_*kin 7

当一个函数作为参数传递给你时,你最后能对它做的唯一有用的事情就是调用它。这就是函数的用途。这就是他们所做的。

例如,在这种情况下,它可能如下所示:

func1 :: (Integer -> Integer -> Integer) -> Integer -> Integer -> Integer
func1 f a b = f (a*2) (b+5)
Run Code Online (Sandbox Code Playgroud)

在这里,第一个参数被命名f,它是一个函数,它接受两个参数,两个参数Integer,并返回另一个参数Integer——它的类型传达了这一点(Integer -> Integer -> Integer)

第二个和第三个参数分别命名为ab,它们都是Integer.

函数体func1包括调用它的函数参数f、传递它(a*2)(b+5)作为参数。