1
奇数長のリストのサブリストを印刷したい。私はこれをコード化した。奇数長のリストのサブリストを印刷するhaskellプログラミング
sublists :: [a] -> [[a]]
sublists [] = [[]]
sublists (x:xs) = if odd (length (tail xs))
then [x:sublist | sublist <- sublists xs] ++ sublists xs
else sublists xs
例:sublists [1,2,3,4,5,6]
私のように出力を取得しています:私はしたい
[[1,3,5],[1,3],[1,5],[1],[3,5],[3],[5],[]]
:
[[1,3,5],[2,3,4],[2,3,5],[1],[2,3,6],[3],[5],[2],[4],[6],[1,2,3],[1,2,4],[1,2,5],[1,2,6],[1,3,4],[1,3,6],[1,4,5],[1,4,6],[1,5,6],[2,4,5],[2,4,6],[2,5,6],[3,4,5],[3,4,6],[3,5,6],[4,5,6],[]]
なぜ、長さ5の部分配列が欲しくないのですか? – Redu
'oddSublists = filter oddlengthで始まります。 allSublists'を作成し、 'oddlength :: [a] - > Bool'と' allSublists :: [a] - > [[a]] 'と書く。 – NovaDenizen