gpt4 book ai didi

list - Haskell 列表的所有可能分区

转载 作者:行者123 更新时间:2023-12-01 23:31:10 24 4
gpt4 key购买 nike

<分区>

我需要编写一个函数来生成列表的所有可能分区,包括非连续分区。它应该看起来像这样:

*Main> ps [1,2,3,4]
[[21, 3, 4],[31, 2, 4],[41, 2, 3],[431, 2],[21, 43],[4321],[31, 42],[421, 3],[41, 32],[321, 4],[1, 32, 4],[1, 42, 3],[1, 432],[1, 2, 43],[1, 2, 3, 4]]

到目前为止,我只能使用列表理解生成递归函数来生成连续的分区。

ps [] = [[]]
ps (x:xs) = [[x]:qs | qs <- ps xs] ++ [(x:gs):gss | (gs):gss <- ps xs]

我想移动每个分区的尾部并将其添加到每个分区的第一个元素之前,但我不确定在 Haskell 中如何执行此操作。我仍然是这种语言的新手。任何帮助将不胜感激!

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