删除列表中的索引条目(SML)

时间:2014-10-16 17:11:05

标签: list sml

我尝试在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);

1 个答案:

答案 0 :(得分:0)

您可以使用模式匹配器来定义两个基本案例,然后根据这些案例实现删除。

fun delete (_,   nil) = nil
  | delete (0, _::xs) = xs
  | delete (i, x::xs) = x::del(i-1,xs);