Haskell中Int类型零阶函数的类型签名正确性确认
你的假设完全正确。
类型签名和函数阶数的对应规则
Haskell里函数的阶数和类型签名中->的数量直接挂钩:
- 零阶函数(本质是不需要接收任何参数的常量/纯值),类型签名直接标注对应值的类型即可,所以Int类型的零阶函数签名就是
k :: Int - 一阶函数接收1个参数,签名带1个
->,比如你提到的接收Int入参、返回Int结果的函数签名就是k :: Int -> Int - n阶函数接收n个参数,签名就会带有n个
->,比如接收两个Int入参、返回Int结果的二阶函数签名为k :: Int -> Int -> Int
实际使用示例
Haskell没有其他语言里“无参函数调用需要加括号”的要求,零阶函数定义后直接使用变量名就能拿到对应值:
-- 定义Int类型的零阶函数 k :: Int k = 7 -- 直接调用即可,运行会输出7 main = print k
上述写法完全符合Haskell的语法规范。
内容的提问来源于stack exchange,提问作者Andrea Berger
相关产品推荐
相关产品推荐

