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]
本当。

library(lambda)を使用します。または:

writeqln(X):-
   writeq(X)、
   nl。

?-maplist(writeqln、[[a、b、c]、[d、e、f]])。
于 2012-10-31T22:14:05.453 に答える
1

これを行う最も簡単な方法は、次のような再帰ルールwriteを使用することです。nl

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

これはリスト処理のための「古典的な」Prologソリューションであり、空のリストを処理するファクトと、ヘッダー要素を1つずつ処理するルールがあります。

于 2012-10-31T22:16:31.733 に答える