OCaml,使用<> =运算符比较int列表

时间:2018-07-16 04:34:03

标签: list types comparison operators ocaml

问题:

使用<,>,=比较int列表背后的逻辑是什么?那“ a列表”呢?

代码:

.navbar .navbar-toggler { padding: .5rem .75rem; }

# let x = [1] > [1] val x : bool = false

# let x = [1;2] > [1] val x : bool = true

# let x = [1;2] > [2;1] val x : bool = false

后续问题:

  • 比较两个列表时,如果列表长度不同,比较如何工作?如果列表不包含相同类型的元素?

1 个答案:

答案 0 :(得分:0)

一个ocaml列表由

表示
type 'a my_list = Nil | Cons of 'a * 'a my_list

Nil构造函数表示为值为0的整数,而Cons是指向带有标签0和2个字段的块的指针。

<> =运算符考虑Nil

比较总是在相同类型之间,因此无法比较不同类型的列表(没有Obj.magic)。