倒車名單,我很新的Haskell和我試圖扭轉名單。與此同時,我想扭轉列表中的列表。因此,例如:在另一個列表在Haskell
Prelude> rev [[3,4,5],[7,5,2]]
[[2,5,7],[5,4,3]]
我知道下面的代碼反轉的列表:
rev :: [[a]] -> [[a]]
rev [[]] = [[]]
rev [[x]] = [[x]]
rev xs = last xs : reverse (init xs)
我一直在掙扎了一段時間,我已經做了一些補充的代碼,但它仍然不能正常工作我被卡住了。
rev :: [[a]] -> [[a]]
rev [[]] = [[]]
rev [[x]] = [[x]]
rev xs = last xs : reverse (init xs)
rev [xs] = last [xs] : reverse (init [xs])
我會很感激任何幫助。提前致謝。
點自由,這只是'REV =反轉。地圖反向# – Alec
太棒了!謝謝。 – ZCoder
順便說一句,通過模式匹配來寫'reverse'的自然方法是使用輔助函數和累積列表;首先'rev ls = loop [] ls' then'loop acc [] = acc;循環acc(a:as)=循環(a:acc)ls' – Michael