看起来很简单,但我对这种语言很新,遇到了一些麻烦。给定两个列表,编写函数以确定哪个列表“更大”的最佳方法是什么。
例如:[1:2:3]和[1:3:2]会返回[1:3:2]
这些列表的长度不必相同:[1:2]和[1:2:3]将返回[1:2:3]
感谢。
答案 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中的列表的一个好方法是使用递归。尝试一些递归模式(如果您仍需要帮助),请更新您的问题以显示您尝试过的内容。