递归函数中的Haskell非穷举模式

时间:2015-10-03 00:41:41

标签: haskell recursion tail

它提供了“mPH”

的多重声明

这是代码

dotProduct x y = sum(zipWith (*) x y)

matrixProduct x y = mPH [] x y

mPH acc [] b = acc

countHelp countacc c [] = countacc

countHelp countacc c (d:ds) = countHelp ((dotProduct c d) : countacc) c ds

mPH acc (a:as) b = mPH ((countHelp [] a b) : acc) as b

任何人都可以为我解释一下吗? 假设我的输入是

x = [[1,2,3],[4,5,6]]
y = [[7,9,11],[8,10,12]]
matrixProduct x y

它应该回馈 马蒂克斯[[64,58],[154,139]]

我认为每次当矩阵成为空列表时,我都会取出第一个矩阵的第一个列表,递归将停止。

0 个答案:

没有答案