【问题标题】:Using "cons" without the "::" operator ocaml使用没有“::”运算符的“cons” ocaml
【发布时间】:2018-10-28 06:29:49
【问题描述】:

有没有不使用:: 运算符在OCaml 中构造列表的方法?

例如,我知道通常元素会按如下方式连接:

1::[2; 3; 4]

产生[1; 2; 3; 4]

我想知道的是是否有可能实现一个方法

cons(1 cons(2 cons(3 cons (4 nil))))

并输出相同的结果,如cons Wikipedia page所示。

谢谢。

【问题讨论】:

    标签: list ocaml cons


    【解决方案1】:

    我认为您正在寻找List.cons。这可以让你做

    # List.(cons 1 (cons 2 (cons 3 (cons 4 []))));;
    - : int list = [1; 2; 3; 4]
    

    【讨论】:

    • 谢谢!我知道 List.cons 运算符,但不知道它可以以这种方式使用。 :)
    • List.(...) 只是暂时打开 List 命名空间。这是写List.cons 1 (List.cons 2 (List.cons 3 (List.cons 4 []))) 的简短形式,比写open List 更专注。它也非常适合使用模块中缀运算符,例如Vec2D.(a + b * s) 不会在任何地方干扰 +
    猜你喜欢
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    相关资源
    最近更新 更多