gpt4 book ai didi

haskell - 尝试改进 haskell 中当前处理列表的丑陋代码

转载 作者:行者123 更新时间:2023-12-02 14:21:50 25 4
gpt4 key购买 nike

我正在尝试在 Haskell 中实现一个函数,该函数将采用任意整数列表 xs 和整数 k,并返回一组带有 的列表k 在所有可能的位置。

例如,对于 xs = [0, 1]k = 2,我们有

myFunction [0, 1] 2 = [ [2, 0, 1], [0, 2, 1], [0, 1, 2] ]

我已将其实现为

putOn xs x i = (take i xs) ++ (x:(drop i xs))
putOnAll xs x = map (putOn xs x) [0..(length xs)]

但是,我觉得必须有其他更聪明的方法来实现同样的目标。我的代码看起来就像有人试图用导弹杀死一个错误。有人能建议如何做一些比这段代码更聪明的事情吗?

谢谢

最佳答案

取自 this question :

ins x []     = [[x]]
ins x (y:ys) = (x:y:ys):[ y:res | res <- ins x ys]

关于haskell - 尝试改进 haskell 中当前处理列表的丑陋代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com