我有這種類型Mat a = [[a]]
來表示haskell中的矩陣。 我必須寫一個旋轉矩陣的功能,對於如[[1,2,3],[0,4,5]
,[0,0,6]]
將成爲[[3,5,6],[2,4,0],[1,0,0]]
所以我做了這個:在Haskell中旋轉矩陣
rotateLeft :: Mat a->Mat a
rotateLeft [[]] = []
rotateLeft (h:t) = (map last (h:t)):(rotateLeft (map init (h:t)))
但輸出
[[3,5,6],[2,4,0],[1,0,0],[*** Exception: Prelude.last: empty list
我不知道該怎麼放入基本情況以避免此例外。 Apreciate任何幫助。
當你修好你的功能之後,你可能會考慮如何從現有的功能中構建出來,而不需要顯式的遞歸。 (破壞者:base64解碼'cm90YXRlTGVmdCA9IHJldmVyc2UgLiB0cmFuc3Bvc2UK'。) –