在OCaml中,递归地从给定条件的列表中删除元素?

在OCaml中,递归地从给定条件的列表中删除元素?,ocaml,Ocaml,我想从列表中删除大于数字n的元素 let rec remove_greater lst n = 我对OCaml非常陌生,不知道如何解决这个问题,也不知道如何从列表中删除元素。任何建议/提示都非常感谢:谢谢OCaml列表是不可变的,因此您不能从中删除元素。您真正想要做的是创建一个新列表,其中只包含您想要保留的元素 解决这个问题的自然方法是使用一个递归函数,它查看列表的两种情况:空列表和非空列表。非空列表有头和尾 如果您有一些特定的代码要讨论,那么SO读者将更容易提供帮助。我们不想为您编写代码:-

我想从列表中删除大于数字n的元素

let rec remove_greater lst n =

我对OCaml非常陌生,不知道如何解决这个问题,也不知道如何从列表中删除元素。任何建议/提示都非常感谢:谢谢

OCaml列表是不可变的,因此您不能从中删除元素。您真正想要做的是创建一个新列表,其中只包含您想要保留的元素

解决这个问题的自然方法是使用一个递归函数,它查看列表的两种情况:空列表和非空列表。非空列表有头和尾


如果您有一些特定的代码要讨论,那么SO读者将更容易提供帮助。我们不想为您编写代码:-

List.filter将执行您想要的操作。如前所述,在ocaml中,列表是不可变的。List.filter将构造一个新的列表,其中只包含满足传递给该函数的谓词的元素。

List.filter fun elt->elt>n lst