我試圖寫一個函數來獲取大小爲n的列表的所有子序列,但我不知道如何去做。寫一個函數來獲取Haskell中所有大小爲n的子序列?
我在想,我可以使用內建的Data.List.subsequences,只是篩選出大小不是n的列表,但它看起來像是一個相當迂迴和低效的方式,而我如果我可以避免這種情況,寧願不這樣做,所以我想知道你是否有任何想法?
我希望它是這樣的類型
subseqofsize :: Int -> [a] -> [[a]]
爲了進一步澄清,這裏是什麼,我正在尋找一個例子:
subseqofsize 2 [1,2,3,3]
[[1,2],[1,3],[2,3],[1,3],[2,3],[3,3]]
另外,我不關心任何事物的順序。
術語挑剔:術語「子列表」,通常意味着什麼不同於「子序列」,即子列表只包含原始列表的連續元素。所以你的函數應該被稱爲'subsequencesOfSize'。 – sepp2k 2012-03-29 10:10:17
這是功課嗎? – augustss 2012-03-29 10:25:42
我將使用這個函數作爲家庭作業的一部分,但它不是直接的作業。我的一部分任務是評估犯人的手,我想這樣做來幫助我評分對。 – 2012-03-29 17:16:09