我尝试在ML中编写一个函数,在给定索引的情况下从列表中删除一个条目。
因此,例如,如果我有一个列表L = [1,2,3,4,5]
并想要从列表中删除3
,我可以调用delete(2, L)
,它应该删除索引2处的元素,是3。
我有一个从列表中删除的功能,给定列表中的特定项目,但我想知道如何从列表中获取索引。
以下是我从代码列表中删除特定元素的代码
fun delete(element, list_head::list_tail) =
if element = list_head then list_tail
else list_head::delete(element, list_tail);
答案 0 :(得分:0)
您可以使用模式匹配器来定义两个基本案例,然后根据这些案例实现删除。
fun delete (_, nil) = nil
| delete (0, _::xs) = xs
| delete (i, x::xs) = x::del(i-1,xs);