Haskell复杂函数类型



我正在努力解决的Haskell函数具有以下类型的

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

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

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

例如,在这种情况下,它可能看起来像这样:

func1 :: (Integer -> Integer -> Integer) -> Integer -> Integer -> Integer
func1 f a b = f (a*2) (b+5)

这里,第一个参数被命名为f,它是一个接受两个参数的函数,两个参数都是Integer,并返回另一个Integer——这是由其类型(Integer -> Integer -> Integer)传递的。

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

函数func1的主体包括调用其函数参数f,将其作为参数传递给(a*2)(b+5)

最新更新