31

Visual Prolog の「等しくない」記号に関するドキュメントが見つかりません。この問題の正しい解決策を提供してください:

class predicates
        sister : (string Person, string Sister) nondeterm(o,o).
    clauses
        sister(Person, Sister) :-
            Person [not-equal-sign] Sister,
            parent(Person, Parent),
            parent(Sister, Parent),
            woman(Sister).
4

2 に答える 2

9

Kaarel が指摘した 2 番目の亜種のドキュメントは、この Visual Prolog リファレンスページにあります。

ただし、コードの問題はもう少し深刻です。Person と Sister の両方の用語がバインドされるまで、非等価性のテストを待つ必要があるため、次のように並べ替えます。

    sister(Person, Sister) :-
        parent(Person, Parent),
        parent(Sister, Parent),
        not(Person = Sister),
        woman(Sister).

中置演算子 "<>" の構文もあります。これは、異なる (または異なる) ことを意味します。2 つの項が結合されると、項が統合できないかどうかをチェックするのと同じ結果が得られます。これは、上記の構成が行うことです。

于 2011-09-20T13:30:35.033 に答える