我想使用这两个谓词模拟矩阵的一个产品和载体:序言倍增列表以及列表的列表
eva([], [], []).
eva([A|A1], [W], [Res|R1]) :-
vectormultiplication(A, W, Res),
eva(A1, W, R1).
vectormultiplication([A], [W], [A*W]).
vectormultiplication([A|A1], [W|W1], [A*W|Out1]) :-
vectormultiplication(A1, W1, Out1).
凡在EVA的[A|A1]
是一个矩阵(或列表清单),[W]
是一个向量(列表),[Res|R1]
是最终产品。假设vectormultiplication
将列表中的每个列表与矢量W
相乘。但是,这种策略只会产生错误的回应。有没有什么明显的,我在这里做错了,使我无法获得所需的产品?我目前正在使用SWI Prolog版本5.10
非常感谢!这解决了我的问题。 – 2013-02-12 03:06:24