在 Haskell 中,显式声明函数的类型签名被认为是一种很好的做法,即使它(通常)可以被推断出来。似乎这在 OCaml 中甚至是不可能的,例如
val add : int -> int -> int ;;
给我一个错误。 (虽然我可以制作
type
只提供签名的模块。)最佳答案
OCaml 有两种指定类型的方法,它们可以内联完成:
let intEq (x : int) (y : int) : bool = ...
或者可以将它们放在接口(interface)文件中,就像您所做的那样:
val intEq : int -> int -> bool
我相信后者是首选,因为它更清晰地将规范(类型)与实现(代码)分开。
引用文献:OCaml for Haskellers
关于syntax - OCaml 显式类型签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005176/