如何从Elm中的Array/List中删除给定索引处的项目?

Mis*_*hko 7 arrays list elm

i在给定的索引处删除项目的最优雅方法是什么Array?在给定的List

pda*_*moc 15

我能想到的最好的:

removeFromList i xs =
  (List.take i xs) ++ (List.drop (i+1) xs) 

removeFromArray i =
  Array.toList >> removeFromList i >> Array.fromList 
Run Code Online (Sandbox Code Playgroud)

  • 列表的排序状态无关紧要,因为问题与列表中的位置(索引)有关,而不是列表中元素的特征。它也可以是一个不可排序的项目列表。 (2认同)

Wil*_*rin 5

这应该非常有效:

remove : Int -> Array a -> Array a
remove i a =
  let
    a1 = Array.slice 0 i a
    a2 = Array.slice (i+1) (Array.length a) a
  in
    Array.append a1 a2
Run Code Online (Sandbox Code Playgroud)