Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 删除列表中的索引项(SML)_List_Sml - Fatal编程技术网

List 删除列表中的索引项(SML)

List 删除列表中的索引项(SML),list,sml,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 l

我试图用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);

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

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