function -::(双冒号)代表什么?

标签 function haskell syntax types

到处都看到并使用 :: 符号,但仍然不知道 :: 符号在 Haskell 中编程时意味着什么,例如

run :: Int -> Int -> Int
--  ??

::(双冒号)在 Haskell 中代表什么?

最佳答案

你可以在谷歌上搜索haskell“双冒号”或类似的东西;不幸的是,用谷歌搜索语法有点困难,但在这种情况下你可以命名它。

在 Haskell 中,如果没有它,你的程序通常也能正常运行(尽管你会想用它来磨练你定义的任何函数的规范,这是一个很好的做法)。

这个想法是,你可以在任何地方(甚至在表达式的中间)插入一个 ::... 来表示“编译器先生,这个表达式应该是 ...”。如果可以证明情况并非如此,编译器将抛出错误。

我认为你也可以用它来将函数“转换”到你想要的版本;例如如果一个函数是“多态的”(具有通用类型签名)并且您实际上想要一个 Integer,那么您可能可以对结果值执行 ::Integer ;不过我有点生疏了。

关于function -::(双冒号)代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926826/

相关文章:

optimization - Haskell 中的严格性优化和内存分配

haskell - 小代码片段导致 ghc 不终止

java - 成员变量和局部方法变量可以重名吗?

c - C 程序中的错误与 xx 的类型冲突以及 xx 的先前隐式声明在这里

php - PHP函数中的逻辑错误

来自字符串快捷方式的 C 字符

function - Dart匿名功能混淆

haskell - Haddock 对进口实体的评论

c++ - 请解释我的结构定义中的冒号?

java - 带有元组条件的 QueryDSL 和 SubQuery