Haskell函数语法(不编译)

时间:2019-05-05 06:53:26

标签: haskell recursion

我编写了一个函数,该函数获取一个Int n和一个Chars数组,并将原始列表右移n个位置。示例:

shift 2 "abcdefg" = "fgabcde"

现在,我想在另一个函数中使用shift,该函数获取一个矩阵(字符列表列表)并返回一个矩阵,其中对于原始矩阵中的第i行,该行在i个条目中进行了移位。

例如:

shiftRows [['a','b','c'], ['a','b','c'], ['a','b','c']] = ["abc", "cab", "bca"]

我尝试了此功能:

shiftRows :: [[Char]] -> [[Char]]
shiftRows [[]] = [[]]
shiftRows matrix = (shiftRows (init matrix)) : shiftRows' ((length matrix) - 1) ([last matrix])

shiftRows' :: Int -> [Char] -> [Char]
shiftRows' n [] = []
shiftRows' n list = shift n list 

我在此功能中的用途是开始移动最后一个列表,然后再移动...之前的列表(依此类推)。它不会编译。这是错误:

enter image description here

我想咨询我的语法有什么问题。

谢谢。

0 个答案:

没有答案