假设函数将两个不同类型的变量作为输入(例如,一个变量在C语言中为int,一个变量在C语言中为char)并返回{{1}中的一个变量}。
如果此函数编码为Haskell或lambda演算代码,函数的类型将如何?
假设函数的类型为Int
。这意味着什么?这是否意味着它接收int变量作为输入并运行Int -> (Char -> Char) -> Int
的函数并输出(Char -> Char)
变量?
答案 0 :(得分:6)
Int -> (Char -> Char) -> Int
类型意味着该函数接受Int
和Char -> Char
类型的函数作为输入,并输出Int
。
该功能本身不必实际使用其输入。例如,
meetoosFunction :: Int -> (Char -> Char) -> Int
meetoosFunction _ _ = 42
*Main Data.Char> meetoosFunction 1 toUpper
42