我想从列表中删除大于数字n的元素。
let rec remove_greater lst n =
我是OCaml的新手,我不确定如何解决此问题,也不知道如何从列表中删除元素。任何建议/提示表示赞赏:)谢谢
答案 0 :(得分:2)
OCaml列表是不可变的,因此您不能从其中删除元素。您真正想要做的就是用您想要保留的元素制作一个新列表。
解决此问题的自然方法是使用递归函数,该函数查看列表的两种情况:空列表和非空列表。非空列表的头和尾都有
。如果您要讨论一些特定的代码,那么SO读者将更容易获得帮助。我们不想为您编写代码:-)
答案 1 :(得分:0)
List.filter将执行您想要的操作。如前所述,在ocaml中列表是不可变的。 List.filter将构造一个新列表,其中仅包含满足传递给该函数的谓词的元素。