如何组合一次字符串中的字符?

时间:2013-06-19 17:07:18

标签: haskell

我已经在互联网上搜索了一段时间来解决这个问题。我需要在Haskell中创建一个函数,它从输入字符串中创建所有可能的组合而不重复。

示例:

combination "new"

将作为输出:

["new","nwe","enw","ewn","wne","wen"]  

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:10)

Data.List模块具有permutations功能,可以完全满足您的需求。

答案 1 :(得分:7)

Hoogle是你最好的朋友。快速搜索类型[a] -> [[a]]会将排列作为第二个结果。如果您正在搜索函数,那么尝试使用hoogle总是好的,因为haskell中的类型有很多关于函数正在做什么的信息,并且受限类型搜索很可能找到您正在寻找的功能。例如,上述类型在hoogle的数据库中只有四个函数,具有精确的类型匹配,并且在大多数情况下,函数名称和函数名称足以明确地推断函数的语义。