我正在尝试学习Haskell在学习你是一个Haskell的指导,但以下困惑我.
lucky :: (Integral a) => a -> String
lucky 7 = "LUCKY NUMBER SEVEN!"
lucky x = "Sorry, you're out of luck, pal!"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,那里有一行说明函数的确切类型.但这有必要吗?参数和返回值的类型不能从该行下面的模式中推导出来吗?
你是对的,绝对没有必要.但是,由于至少有两个原因,这是一种非常常见的做法,即说明功能的类型:
这就是为什么尽管它们是可选的,但顶级函数的类型几乎总是在Haskell代码中拼写出来.
为了完成Zeta所说的,在这种情况下没有必要.但是,在某些情况下,当代码太不明确而无法推断时,有必要指定函数的类型.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |