我试图写的函数应该从指定的任何类型的列表中删除给定索引处的元素。如何从Haskell的列表中删除元素?
以下是我已经做了:
delAtIdx :: [x] -> Int -> [x]
delAtIdx x y = let g = take y x
in let h = reverse x
in let b = take (((length x) - y) - 1) h
in let j = g ++ (reverse b)
in j
这是正确的吗?任何人都可以推荐另一种方法
考虑'drop',而不是'reverse' - 'take' - 'reverse' – newacct 2012-04-21 08:21:00
请注意,如果您发现自己删除索引处的元素(远离列表的前面)很多,您可能需要重新考虑您选择的数据结构或算法。 – gspr 2015-12-05 09:58:15