我想打印矩阵,每一行在单独的行中,例如
?- print_matrix([[a,b,c],[d,e,f]]).
我想得到
[a,b,c]
[d,e,f]
?- maplist(\X^(writeq(X),nl),[[a,b,c],[d,e,f]])。 [a,b,c] [d,e,f] 真的。
使用库(lambda)。或者:
写qln(X):- 写q(X), 荷兰语 ?- maplist(writeqln,[[a,b,c],[d,e,f]])。
最简单的方法是在递归规则中使用write
and ,如下所示:nl
print_matrix([]).
print_matrix([H|T]) :- write(H), nl, print_matrix(T).
这是用于列表处理的“经典”Prolog 解决方案,其中包含处理空列表的事实和逐个处理标题元素的规则。