如何在 Haskell 中向右或向左移动列表的 1 个元素?

2024-05-12

嗨,我一直在寻找答案,但找不到。假设我们有一个像这样的列表[1,10,4,5,3]我怎样才能将 5 向左移动,使这个列表变成[1,10,5,4,3].

我尝试过了swapElementsAt通过找到该元素的索引,但它看起来非常不足。


swapElementsAt :: Int -> [a] -> [a]                                             
swapElementsAt n list = let (beg, a:b:rest) = splitAt (n-1) list in beg ++ b:a:rest

它的工作原理就像

λ> swapElementsAt 3 [1,10,4,5,3]
[1,10,5,4,3]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Haskell 中向右或向左移动列表的 1 个元素? 的相关文章

随机推荐