如何检查sml中的2个项目是否在同一个列表中?我尝试更改成员函数,但我无法使其正常工作。
val routeList1 = ["Princes Street", "Haymarket", "Craiglockhart", "Musselburgh", "Stoneybank"]
如果想检查"Princes Street"
和"Haymarket"
是否都在routeList1
我是这种语言的新手,所以任何帮助都会很好
答案 0 :(得分:1)
要检查"Princes Street"
中是否有routeList1
,您可以写:
List.exists (fn s => s = "Princes Street") routeList1
(使用List.exists
[see doc] 检查元素s
,使s = "Princes Street"
为true
)。
要检查两个字符串,只需检查一个,然后检查另一个:
List.exists (fn s => s = "Princes Street") routeList1
andalso List.exists (fn s => s = "Haymarket") routeList1
答案 1 :(得分:1)
您可以调用检查成员资格的函数
fun elem x ys = List.exists (fn y => x = y) ys
一个检查很多东西的成员资格的函数
fun allElems xs ys = List.all (fn x => elem x ys) xs
假设只能比较元素的相等性。然后
val areThey = allElems ["Princes Street", "Haymarket"] routeList1