我正在努力解决的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)
传递的。
第二个和第三个参数分别命名为a
和b
,它们都是Integer
。
函数func1
的主体包括调用其函数参数f
,将其作为参数传递给(a*2)
和(b+5)
。