transpose [[1,0,0],[2,-3,0],[4,5,6]]
= [1,2,4] : transpose [[0,0],[-3,0],[5,6]]
= [1,2,4] : [0,-3,5] : transpose [[0],[0],[6]]
= [1,2,4] : [0,-3,5] : [0,0,0] : transpose [[],[],[]]
И вот где это происходит. Это не соответствует первому шаблону, потому что это не одноэлементный список - это список с тремя элементами. Итак:
= [1,2,3] : [0,-3,5] : [0,0,0] : map head [[],[],[]] : transpose (map tail [[],[],[]])
Что даст вам одну ошибку для каждого пустого списка, поскольку head
и tail
не определены в пустых списках.