2014-10-16 45 views
1

我正試圖在ML中編寫一個函數,以從列表中刪除一個條目,給定索引。刪除列表中的索引條目(SML)

因此,舉例來說,如果我有一個列表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

您可以使用模式匹配來定義兩個基本情況,然後實現您刪除這些案件方面我的代碼。

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