0

假设函数输入两个不同类型的变量(例如,一个变量是 C 语言的 int,一个变量是 C 语言的 char)并返回一个 in 的变量Int

如果将此函数编码为 Haskell 或 lambda 演算代码,该函数的类型将如何?

所以假设函数有 type Int -> (Char -> Char) -> Int。这意味着什么?这是否意味着它接收 int 变量作为输入并运行函数(Char -> Char)并输出Int变量?

4

1 回答 1

6

一个类型Int -> (Char -> Char) -> Int意味着该函数接受一个Int和一个类型的函数Char -> Char作为输入,并输出一个Int

该函数不必实际使用其输入本身。例如,

meetoosFunction :: Int -> (Char -> Char) -> Int
meetoosFunction _ _ = 42

*Main Data.Char> meetoosFunction 1 toUpper
42
于 2013-02-27T02:11:10.387 回答