作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道我们是否可以在模块内部有一个本地模块。如果一个仿函数可以作为参数传递给另一个仿函数,就可以实现这一点。但我不确定我们能否做到这一点。
如果这是一个模糊的问题,我深表歉意。
谢谢。
最佳答案
是的,可以定义高阶仿函数。这是一个将第一个参数应用于第二个参数的仿函数的简单示例:
module App (F : functor (X: sig end) -> sig end) (X: sig end) = F (X)
然而,这与拥有本地模块的问题无关,本地模块非常简单,不需要仿函数。以下示例定义了一个子模块 B,该子模块 B 对 A 保持私有(private):
module A : (sig val g : unit -> unit end) = struct
module B = struct
let f () = print_endline "Hello"
end
let g = B.f
end
let () = A.g () (* valid, prints Hello *)
let () = A.B.f () (* invalid *)
关于ocaml - 我们可以将仿函数作为参数传递给另一个仿函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27737102/
我是一名优秀的程序员,十分优秀!