Prolog - Return 矩阵的第 n 列
Prolog - Return the n-th column of a matrix
我正在尝试编写谓词 columnN/3
,其中 return 是矩阵的 "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).
将 return 2
,所以我想使用它,我可以输入每一行,获取值并将其附加到列表. (我试图用 columnN
谓词来做)。
我的代码怎么错了?提前谢谢你。
感谢@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).
我正在尝试编写谓词 columnN/3
,其中 return 是矩阵的 "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).
将 return 2
,所以我想使用它,我可以输入每一行,获取值并将其附加到列表. (我试图用 columnN
谓词来做)。
我的代码怎么错了?提前谢谢你。
感谢@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).