List OCaml,使用<>;=操作员
问题: 使用,=,比较int列表背后的逻辑是什么?a名单呢 代码:List OCaml,使用<>;=操作员,list,types,comparison,operators,ocaml,List,Types,Comparison,Operators,Ocaml,问题: 使用,=,比较int列表背后的逻辑是什么?a名单呢 代码: #设x=[1]>[1] val x:bool=false #设x=[1;2]>[1] val x:bool=true #设x=[1;2]>[2;1] val x:bool=false #设x=[true;false]
#设x=[1]>[1]
val x:bool=false
#设x=[1;2]>[1]
val x:bool=true
#设x=[1;2]>[2;1]
val x:bool=false
#设x=[true;false]<[true;true]
val x:bool=true
后续问题:
- 在比较两个列表时,如果列表的长度不同,比较是如何工作的?如果列表不包含相同类型的元素李>
type 'a my_list = Nil | Cons of 'a * 'a my_list
Nil构造函数表示为一个值为0的整数,而Cons是一个指向带有标记0和2个字段的块的指针
<> =运算符考虑nIL.CONS。因此,如果列表的长度不同,则较短的列表较小
比较总是在同一类型之间进行的,因此不同类型的列表无法进行比较(没有Obj.magic)。这似乎在回答另一个问题时得到了解决:可能重复的