1

インスタンス化されていないリストで呼び出すmember(Item, List)と、Prolog は項目を含むリストを統合して返します。true/を返しfalse、統一しようとしないルールが必要です。そのような規則はありますか?

4

2 に答える 2

1

私はガードを使用します

is_member(E, L) :- nonvar(L), memberchk(E, L).

memberchk/2これは member/2 の決定論的なバージョンであり、リストに要素の出現が少なくとも 1 つ含まれているかどうかを調べるために使用されます。generatorとして機能することはできませんが、より効率的です。とにかくお守りが必要です。

于 2014-01-05T17:12:43.507 に答える