我需要编写一个 Prolog 谓词来检查:
- 如果行上的所有矩阵元素都是奇数,程序应该在行的末尾添加
1
。 - 如果行中有 1 个或多个偶数,程序应在行尾添加
0
。
?- f([[1,2,3],[5,5,5],[4,4,4]], Xss).
Xss = [[1,2,3,0],[5,5,5,1],[4,4,4,0]].
这就是我现在所拥有的:
f([],[]).
f(matrix,Xss).
f([Xs|T],Xss):-
Xs=[X|T2],
(X mod 2 =:= 0 ->
add2end(0,[X|T2],[X|Result]):-
add2end(0,T2, Result),
add2end(0,[],[0]), Xss=[Xs|T] ;
add2end(1,[X|T2],[X|Result]):-
add2end(1,T2,Result),
add2end(1,[],[1])), Xss=[Xs|T]..