我正在尝试将列表x与列表S进行比较,如果列表x具有S的全部或某些元素,则该值为true,否则为false。如果x和S为空,则也为false。我正在实现以下代码,无法编译,希望找到解决方案。欣赏它。谢谢:
let rec isMember x S =
match S with
|[] , [] -> false
|_ , [] -> true
|[] , _ -> false
|e1::rest1, e2::rest2 -> (e1=e2) || (isMember rest1 rest2)
答案 0 :(得分:0)
您的匹配项应包括两个列表(是一个元组),如下所示:
match x, S with
...尽管isMember
的实现方式只有在x
的元素多于S
且S
的元素完全相同的情况下才是正确的x
中的顺序相同。您可能要使用List.contains
。
顺便说一句,在使用大写/小写时请尽量保持一致,驼峰式大小写是F#中的惯例