Ocaml 如何删除列表中出现的所有项目?

Ocaml 如何删除列表中出现的所有项目?,ocaml,Ocaml,所以…我有一些问题,我的目标是从列表中删除项目,如下所示 例如,我有这样一个列表: let list=[1;2;4;5;1;1;6] 当我这样做的时候: 从列表1列表中删除 我想要回此列表(删除所有1): [2;4;5;6] 因此,如果我没有弄错的话,我会有一个类型:“a->”a list->“a list”a list函数……如何使用模块列表中的list.filter?(我在没有应用.filter的情况下成功地做到了这一点,但我不能这样做)最后,我很难理解如何与我想要删除的项目进行比较,以及L

所以…我有一些问题,我的目标是从列表中删除项目,如下所示

例如,我有这样一个列表:

let list=[1;2;4;5;1;1;6]

当我这样做的时候:

从列表1列表中删除

我想要回此列表(删除所有1):

[2;4;5;6]


因此,如果我没有弄错的话,我会有一个类型:“a->”a list->“a list”a list函数……如何使用模块列表中的list.filter?(我在没有应用.filter的情况下成功地做到了这一点,但我不能这样做)

最后,我很难理解如何与我想要删除的项目进行比较,以及List.filter是如何工作的,但我已经有了我所需要的

let remove_from_list elem list=list.filter(fun x->x elem)list


感谢@glennsl和@G4143的帮助

你具体试过什么?@glennsl我就是这么做的:
让rec从列表n=function[]->[]|h::t->如果n=h,则从列表n t中删除,否则h::从列表n t中删除但我没有用.filter实现,我认为这类似于…
让num list=list.filter((fun x y->not(list.exists x y))num)listList.filter
的类型了吗?@glennsl当然……我知道我需要一些东西:('a->bool)->'a List->'a List,但我不知道如何从列表中提取项目……好吧,只要过滤掉与你想要删除的项目不相等的所有东西。