Sml 我们如何在参数中表示元组列表
在sml中,我们通过l::ls将整数或字符串列表定义为参数,这有助于我们定义任意长度的列表,然后如果b1>b2,我们可以与=或>或(a2,b2)进行比较,因此一些仅能像上面那样删除的排序是不够的Sml 我们如何在参数中表示元组列表,sml,smlnj,Sml,Smlnj,在sml中,我们通过l::ls将整数或字符串列表定义为参数,这有助于我们定义任意长度的列表,然后如果b1>b2,我们可以与=或>或(a2,b2)进行比较,因此一些仅能像上面那样删除的排序是不够的 非常感谢。您可以使用通常的形式(x,y)直接在元组上进行模式匹配 您的delete函数适用于任何列表,因此它也适用于元组列表。下面是一个基于元组中的第一个值筛选列表的示例: fun deleteByFirst(x0, []) = [] | deleteByFirst(x0, (x, y)::ls)
非常感谢。您可以使用通常的形式
(x,y)
直接在元组上进行模式匹配
您的delete
函数适用于任何列表
,因此它也适用于元组列表。下面是一个基于元组中的第一个值筛选列表的示例:
fun deleteByFirst(x0, []) = []
| deleteByFirst(x0, (x, y)::ls) =
if x = x0
then deleteByFirst(x0, ls)
else (x, y)::deleteByFirst(x0, ls)
大家好,我可以用类似的模式匹配int*int的数据类型location=coordinet,例如coordinet(x1,y1)::coordinet(x2,y2)::ls作为列表吗?非常感谢。
fun deleteByFirst(x0, []) = []
| deleteByFirst(x0, (x, y)::ls) =
if x = x0
then deleteByFirst(x0, ls)
else (x, y)::deleteByFirst(x0, ls)