我需要编写一个SML函数,它将元组(x和y坐标)列表和整数值作为输入。如果整数是列表中的x值,则函数需要返回true,否则返回false。例如,如果列表是:
val list = [(1,1),(2,4),(3,9),(4,16)];
该功能的行为如下:
memberOf(2, list) = true
memberOf(4, list) = true
memberOf(9, list) = false
有人可以帮我写一个能完成这个的功能吗?我只需要测试x值是否在列表中,元组的y值是不重要的。
谢谢!
答案 0 :(得分:1)
您可以使用#1 tuple
访问元组的第一个参数,使用#2 tuple
访问第二个参数。因此,在项目列表结束之前,检查项目是作为第一个参数还是第二个元组列表存在。
(* fn : int * (int * int) list -> bool *)
fun exists_in (item: int, mylist: (int*int) list) =
if null mylist
then false
else if #1 (hd mylist) = item orelse #2 (hd mylist) = item
then true
else exists_in (item, tl mylist)
答案 1 :(得分:0)
fun member_of (item, list) = List.exists (fn (x,y) => x = item) list