Haskellの本でconcat関数を見たとき、Haskellで以下のリストをどのように平坦化できるのだろうかと思います。 Pythonでは、関数の型を調べることができるので、これを行うことができます。しかし、ハスケルではできませんでした。下のリストをどのように平らにすることができますか?操作はリストの一覧に表示されます。 how
input: [[1, 2], [[2, 3], 5], [[[2, 3], [4, 5]], [2, 3]]]
output: [1, 2, 2, 3, 5, 2, 3, 4, 5, 2, 3]
注意を - あなたはリストを入れ子にしている場合はHaskellであなたはリストではなく木を使用し、一般的でしょう。 Haskellのような強く型付けされた言語では、ネストの構造がリストの型に反映されなければならない - 時にはこれは良いことですが、構造体ではなく要素を考慮する必要があるツリーが本当に必要なことがよくあります。ローズツリーである標準ライブラリにモジュールData.Treeがあります。または、独自のロールを簡単に作成できます。 –
あなたの入力はHaskellの有効なリストさえありません。 –
関連:http://stackoverflow.com/questions/5994051/is-there-a-function-to-flatten-a-nested-list-of-elements –