これらの2つの述語を使用して、行列とベクトルの積をシミュレートしようとしています。
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).
ここで、[A|A1]
in evaは行列(またはリストのリスト)で[W]
あり、はベクトル(リスト)であり[Res|R1]
、結果の積です。vectormultiplication
リスト内の各リストにベクトルを掛けることになっていW
ます。ただし、この戦略は誤った応答を生成するだけです。私がここで間違っていることが、目的の製品を手に入れるのを妨げていることは明らかですか?私は現在SWIPrologバージョン5.10を使用しています