【发布时间】:2014-12-09 18:34:00
【问题描述】:
我不知道这发生了什么。
我有一个清单
L = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
我需要一个函数来给我这个:
L = [[1, 4, 7],[2, 5, 8],[3, 6, 9]]
直到现在我有这个:
rotar2 [ ] = [ ]
rotar2 l = [map head l] ++ rotar2(map tail l)
它有效但根本没有.. 它向我发送了这个错误:
[[1,4,7],[2,5,8],[3,6,9],[
Program error: pattern match failure: head []
我该怎么办?
【问题讨论】:
-
您尝试定义的函数很容易获得 - 它被称为
transpose。 -
当你
rotar2 [[]]时会发生什么? -
@n.m.它给我发送了同样的错误
-
我知道它给你发送了什么,你知道为什么吗?
-
你在
map head上l,但没有理由仅仅因为l本身是非空的就假设l包含非空列表。如果您继续map tail在列表列表上,最终,其中一个元素将是一个空列表。