2013-06-19 12 views
3

我已經在互聯網上搜索了一段時間,解決了這個問題。我需要在Haskell中創建一個函數,它可以從輸入字符串中生成所有可能的組合,而不會有重複。如何組合字符串中的字符一次?

例子:

combination "new" 

會給作爲輸出:

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

有人可以幫我嗎?

+5

在數學中,這些被稱爲「[置換](http://www.haskell.org/hoogle/?hoogle=permutations)」。 –

+0

感謝您的迴應! – user2502169

回答

10

Data.List模塊有一個permutations函數,它完全符合您的需求。

+0

謝謝!我是一個哈斯克爾的新手! – user2502169

7

Hoogle是你最好的朋友。第[a] -> [[a]]類型的快速搜索給出排列作爲第二個結果。如果你正在尋找一個函數,那麼試試hoogle一定會很好,因爲haskell中的類型有很多關於函數的功能,而受限制的類型搜索很可能找到你正在尋找的功能。例如,上面的類型在hoogle的數據庫中只有四個函數具有精確的類型匹配,並且在大多數情況下這些信息足以明確地推斷函數的語義。

+0

非常感謝! – user2502169

相關問題