さて、私は車のいくつかの基本的な部品を持っています。
elementary_part( spoke ).
elementary_part( rim ).
elementary_part( hub ).
およびいくつかのサブコンポーネント、例えば:
subcomponent( wheel, [quant( spoke, 5 ), quant( rim, 1 ), quant( hub, 1)] ).
そして、私は基本部分を与える「consists_of」プログラムを書こうとしています。
consists_of(wheel, P).
私はこれまでのところ、この点を乗り越えてきました:
consists_of(wheel, P):- parts(wheel, P).
quant(X,Y):- write(Y), write(' piece(s) of '), write(X), write('.'), nl.
parts(X,Y):- subcomponent(X, [H|T]), print_a_list([H|T]).
print_a_list([]).
print_a_list([H | T]) :- nl, write(H), print_a_list(T).
結果として得られるものは次のとおりです。
?- consists_of(wheel,P).
quant(spoke,5)
quant(rim,1)
quant(hub,1)
true.
...これは私が望むものではありません。試してみると正しい結果が得られます
consists_of(wheel, P):- quant( spoke, 5 ), quant( rim, 1 ), quant( hub, 1).
しかし、私は多くの自動車部品に対してこれを行っているので、これが解決策ではないことを知っています.
sthがありませんか?「quant(X,Y)」が正しく表示されるように、リストの要素を個別に抽出するにはどうすればよいですか? または、少なくとも要素のみが表示され、ファンクターとの複合項は表示されません。