比较Ocaml

时间:2016-10-18 22:10:22

标签: functional-programming ocaml

看起来很简单,但我对这种语言很新,遇到了一些麻烦。给定两个列表,编写函数以确定哪个列表“更大”的最佳方法是什么。

例如:[1:2:3]和[1:3:2]会返回[1:3:2]

这些列表的长度不必相同:[1:2]和[1:2:3]将返回[1:2:3]

感谢。

1 个答案:

答案 0 :(得分:3)

预定义函数max将为您执行此操作:

# max [1;2;3] [1;3;2];;
- : int list = [1; 3; 2]
# max [1;2] [1;2;3];;
- : int list = [1; 2; 3]

当然,这取决于你的意思"更大"。 OCaml的内置比较使用lexicographic order。如果你想使用其他一些订单,你实际上必须编写自己的函数。

或许你想从头开始编写自己的功能只是为了练习。在这种情况下,使用OCaml中的列表的一个好方法是使用递归。尝试一些递归模式(如果您仍需要帮助),请更新您的问题以显示您尝试过的内容。