PROLOG - 条目LIST条目的逻辑基础

时间:2012-04-30 02:30:38

标签: prolog

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);]

任何人都可以告诉我如何才能得到它。

1 个答案:

答案 0 :(得分:0)

接近预期结果的某些内容(结尾处的分号除外)可能是:

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

关于_h209的注释,发生在成员的第一个位置:我不确定你知道这些符号的含义。这些是变量,如果您有兴趣保存这些表达的身份,我的建议是不正确的。在这种情况下使用bagof。