gpt4 book ai didi

syntax - OCaml 显式类型签名

转载 作者:行者123 更新时间:2023-12-03 09:03:04 24 4
gpt4 key购买 nike

在 Haskell 中,显式声明函数的类型签名被认为是一种很好的做法,即使它(通常)可以被推断出来。似乎这在 OCaml 中甚至是不可能的,例如

val add : int -> int -> int ;;

给我一个错误。 (虽然我可以制作 type 只提供签名的模块。)
  • 我是否正确,因为这在 OCaml 中是不可能的?
  • 如果是这样,为什么? OCaml 的类型系统似乎与 Haskell 并没有太大的不同。
  • 最佳答案

    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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com