我正在嘗試顛倒Haskell中的嵌套列表。據我所知,嵌套的列表不是在Haskell,所以我定義了一個一件事:顛倒Haskell中的自定義嵌套列表
flatten :: NestedList a -> [a]
flatten (Elem x) = [x]
flatten (SubList x) = concatMap flatten x
現在我想給我寫反向功能:
data NestedList a = Elem a | SubList [NestedList a]
我也有一個扁平化的功能。該功能定義爲:
myreverse :: NestedList a -> NestedList a
我認爲這是有道理的,因爲我只是重新排列列表中的元素。
我明白如何編寫一個基本的反向函數,而且我也知道,對於Haskell的標準列表reverse已經定義了。
我的問題是:如何處理列表頭部也是列表的情況?我所知道的需要發生的事情是,我將名單的頭部顛倒過來,放回到尾巴的背面。但如何實現這一目標?
謝謝。我試過這種方式,它工作。 – Coliwack