在常见的lisp中,我们可以使用remove
函数。
似乎OCaml中没有这样的方法?
答案 0 :(得分:15)
OCaml中的列表是不可变的。所以你不能从中删除东西。您通常会创建另一个没有您不想要的内容的列表。为此,您将使用List.filter
。
如果您必须拥有可变列表,则可以。在电池中有一种叫做Dllist的东西可能就像你想要的那样。 (这是一个双向链表,但与Lisp列表不同)。
在我看来,OCaml的一大优点是纯功能子集非常有效。我从来不需要在我自己的项目中使用可变列表。