インスタンス化されていないリストで呼び出すmember(Item, List)
と、Prolog は項目を含むリストを統合して返します。true
/を返しfalse
、統一しようとしないルールが必要です。そのような規則はありますか?
2 に答える
1
私はガードを使用します
is_member(E, L) :- nonvar(L), memberchk(E, L).
memberchk/2
これは member/2 の決定論的なバージョンであり、リストに要素の出現が少なくとも 1 つ含まれているかどうかを調べるために使用されます。generatorとして機能することはできませんが、より効率的です。とにかくお守りが必要です。
于 2014-01-05T17:12:43.507 に答える