0

PROLOGエントリのリストに変換する必要があるエントリ(メモリに格納されている)のロジックベースがあります。

例:

| ?- rule(A,B).

A = member(_h209,[_h209|_h212])
B = true;

A = member(_h209,[_h211|_h212])
B = member(_h209,_h212);

[member(_h209,[_h209|_h212]),true,member(_h209,[_h211|_h212]),member(_h209,_h212);]

どうすれば入手できるのか教えてください。

4

1 に答える 1

0

期待される結果に近いもの(最後のセミコロンを除く)は次のようになります。

rule_list(Rules) :-
     findall([A, B], rule(A, B), L),
     flatten(L, Rules).

メンバーの最初の位置で発生する_h209に関する注記:そのような記号の意味を知っているかどうかはわかりません。これらは変数であり、これらが表現するアイデンティティを維持することに興味がある場合、私の提案は正しくありません。このような場合はbagofを使用してください。

于 2012-04-30T04:55:36.313 に答える