【问题标题】:Building OCaml code that uses list comprehension构建使用列表推导的 OCaml 代码
【发布时间】:2015-02-26 19:43:03
【问题描述】:

从这个 SO 问题:List Comprehension in Ocaml?,我可以使用opam install pa_comprehension 安装理解包,并在顶级 REPL 中使用该包。

# #require "pa_comprehension";;
# open Batteries;;
# [? 2 * x | x <- 0 -- max_int ; x * x > 3 ?];;
- : int Batteries.Enum.t = <abstr>

那么,我该如何编译代码呢?

【问题讨论】:

    标签: ocaml list-comprehension ocaml-batteries


    【解决方案1】:

    不幸的是,由于pa_comprehension 包名没有以.syntax 扩展名结尾,这比它应该做的要难一些。 (这个问题仍然没有解决的事实表明使用pa_comprehension 在现代OCaml 中不是很流行)。因此,如果没有适当的扩展,我们需要手动完成所有操作。如果你的文件名为pr.ml,那么正确的调用是:

    $ ocamlbuild -use-ocamlfind -syntax camlp4o -pkg camlp4,pa_comprehension pr.native
    

    如果不想每次都输入,可以创建_tags文件,内容如下:

    $ cat _tags
    <**/*> : package(camlp4),syntax(camlp4o),package(pa_comprehension)
    

    这样的话,命令行拼写会容易一些:

    $ ocamlbuild -use-ocamlfind pr.native
    

    【讨论】:

    • Batteries 呢?
    • Batteries 包含在 pa_comprehension 的依赖项中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多