从OCaml中的列表中删除元素的标准方法是什么?

z_a*_*xis 9 ocaml

在常见的lisp中,我们可以使用该remove函数.

在OCaml中似乎没有这样的方法?

Jef*_*eld 15

OCaml中的列表是不可变的.所以你不能从中删除东西.您通常会创建另一个没有您不想要的内容的列表.为此,你会使用List.filter.

如果您必须拥有可变列表,则可以.在电池中有一种叫做Dllist的东西可能就像你想要的那样.(这是一个双向链表,但不像Lisp列表).

在我看来,OCaml的一大优点是纯粹的功能子集非常有效.我从来不需要在自己的项目中使用可变列表.