我到处都看到并使用 ::
符号,但仍然不知道 ::
符号在 Haskell 中编程时意味着什么,例如
run :: Int -> Int -> Int
-- ??
::
(双冒号)在 Haskell 中代表什么?
最佳答案
你可以在谷歌上搜索haskell“双冒号”
或类似的东西;不幸的是,用谷歌搜索语法有点困难,但在这种情况下你可以命名它。
在 Haskell 中,如果没有它,你的程序通常也能正常运行(尽管你会想用它来磨练你定义的任何函数的规范,这是一个很好的做法)。
这个想法是,你可以在任何地方(甚至在表达式的中间)插入一个 ::...
来表示“编译器先生,这个表达式应该是 ...
”。如果可以证明情况并非如此,编译器将抛出错误。
我认为你也可以用它来将函数“转换”到你想要的版本;例如如果一个函数是“多态的”(具有通用类型签名)并且您实际上想要一个 Integer,那么您可能可以对结果值执行 ::Integer
;不过我有点生疏了。
关于function -::(双冒号)代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926826/