gpt4 book ai didi

haskell - 在 Haskell 中获取列表的所有排列

转载 作者:行者123 更新时间:2023-12-03 15:24:59 25 4
gpt4 key购买 nike

我正在尝试从头开始执行此操作,而不使用标准库之外的库。这是我的代码:

permutations :: [a] -> [[a]]
permutations (x:xs) = [x] : permutations' xs
where permutations' (x:xs) = (:) <$> [x] <*> split xs
split l = [[x] | x <- l]

问题是这只产生了非确定性计算的一个分支。理想情况下我想要
(:) <$> [x] <*> ((:) <$> [x] <*> ((:) <$> [x] <*> ((:) <$> [x] <*> xs)))

但我找不到干净的方法。我想要的结果是这样的:
permutations "abc" -> ["abc", "acb", "bac", "bca", "cab", "cba"]

我该怎么做呢?

最佳答案

也许您应该使用现有代码:

import Data.List
permutations [1,2,3,4]

关于haskell - 在 Haskell 中获取列表的所有排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097116/

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