我正在尝试编写谓词columnN/3
,它返回" nth"矩阵的元素。
示例:
columnN([[1,2],[3,4],[5,6]], 1, CJ).
CJ = [1,3,5];
No
在社区的帮助下,我能够尝试使用谓词rowN/3
来尝试获取列。
这是我到目前为止所做的:
rowN([H|_],1,H):-!.
rowN([_|T],I,X) :-
I1 is I-1,
rowN(T,I1,X).
columnN([],[],[]).
columnN([H|T], I, [R|X]):-
rowN(H, I, R),
columnN(T,I,X).
我只是弄错了。
rowN/3
谓词工作正常,rowI([1,2,3,4], 2, RI).
将返回2
,所以我在考虑使用它,我可以输入每一行,获取值并将其附加到列表中。 (我尝试使用columnN
谓词)。
我的代码怎么错了?提前谢谢。
答案 0 :(得分:2)
感谢@lurker上面的评论,这段代码有效:
rowN([H|_],1,H):-!.
rowN([_|T],I,X) :-
I1 is I-1,
rowN(T,I1,X).
columnN([],_,[]).
columnN([H|T], I, [R|X]):-
rowN(H, I, R),
columnN(T,I,X).