Jef*_*Yan 1 haskell type-signature
doWithFunctionArg :: ? -> Int -> Int -> Int
doWithFunctionArg f a b = f a b
multiply :: Int -> Int -> Int
multiply a b = a * b
main = do
print $ doWithFunctionArg mutiple 7 8
Run Code Online (Sandbox Code Playgroud)
我不确定函数的类型签名是什么.multiply :: Int -> Int -> Int乘法函数的函数类型签名是什么?如果是,我该如何为函数编写类型签名doWithFunctionArg?doWithFunctionArg函数有三个参数,"f"是函数类型,"a"和"b"是Int,结果应该是Int.如果我是对的,我该怎么写"?"
multiply是类型Int -> Int -> Int,所以doWithFunctionArg是类型
-- typeof(multiply) -> Int -> Int -> Int
(Int -> Int -> Int) -> Int -> Int -> Int
Run Code Online (Sandbox Code Playgroud)
实际上你可以打电话给ghci寻求帮助:
Prelude> doWithFunctionArg f a b = f a b
Prelude> :t doWithFunctionArg
doWithFunctionArg :: (t2 -> t1 -> t) -> t2 -> t1 -> t
Run Code Online (Sandbox Code Playgroud)