谁能告诉我如何加入这两个谓词,
listAt([L1|L2], 0, L) :- L = L1.
listAt([L1|L2], I, L) :- I1 is I - 1, listAt(L2, I1, L).
%return list index I from list of lists
valAt([H|T], 0, V) :- V = H.
valAt([H|T], J, V) :- J1 is I - 1, valAt(T, J1, V).
%returns element index J of list
,所以我可以从列表列表中访问元素 [i][j] 吗?
我可以通过编写手动完成
| ?- listAt( [ [1,2,3], [4,5,6] ], 1, L), valAt(L, 1, V).
L = [4,5,6],
V = 5 ?
yes
,但如果在 .pl 文件中我写
At([H|T],I,J,X) :-
listAt([H,T],I,V),
valAt(V,J,X).
,我得到
在表达式 ( [H|T] , I , J , X ) 之后需要运算符:- listAt ( [H|T] , I , V ) , valAt ( V , J , X ) 。
感谢您的帮助