gpt4 book ai didi

module - OCaml 中的嵌套签名示例?

转载 作者:行者123 更新时间:2023-12-04 17:40:48 25 4
gpt4 key购买 nike

在 OCaml 中,您可以嵌套签名:

module type FOO =
sig
module type BAR
(* … *)
end

我只是想知道是否有人有任何使用此功能的示例,因为我想不出任何需要它的地方。我想它可能在仿函数的返回签名中很有用,但我想不出任何具体的东西。

最佳答案

我记得看到一些模块(可能在电池中),其中包括 Infix内部的模块可以单独打开,并且只有在真正需要时才可以打开。例如,

module Rational = 
struct
let add a b = ...
let sub a b = ...

module Infix =
struct
let (<+>) = add
let (<->) = sub
end
end

这样如果你打开 Rational.Infix模块,您不会取消范围(?)任何与 Rational 中的任何名称相同的函数.

我正在做一个项目,我们使用模块来划分 types .让一个模块只定义一种类型并操作该类型有助于组织;特别是当模块很小并且拥有单独的文件没有优势时,并且变体类型没有意义。
module Node = 
struct

end
module Edge =
struct

end

type 'a tree = { nodes : 'a Node.t; edges : 'a Edge.t; }

我们也将它们用作单独的文件(与 -mlpack 结合),用于生物数据所需的所有解析器——Nexus、Fasta、Phylip 等。

最后,通常在对新算法进行原型(prototype)设计时,我们会先用 ocaml 编写它,然后再编写 C 版本。我们通常将 ocaml 版本保存在具有相同函数名称的内部模块中。
module Align = 
struct
module OCaml =
struct

end
end

关于module - OCaml 中的嵌套签名示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4372709/

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