2

我想打印矩阵,每一行在单独的行中,例如

?- print_matrix([[a,b,c],[d,e,f]]).

我想得到

[a,b,c]
[d,e,f]
4

2 回答 2

2
?- 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]])。
于 2012-10-31T22:14:05.453 回答
1

最简单的方法是在递归规则中使用writeand ,如下所示:nl

print_matrix([]).
print_matrix([H|T]) :- write(H), nl, print_matrix(T).

这是用于列表处理的“经典”Prolog 解决方案,其中包含处理空列表的事实和逐个处理标题元素的规则。

于 2012-10-31T22:16:31.733 回答