これを有効にする方法はありますか:
genre(blues).
gere(hiphop).
genre(rock).
このようなものに:
genre(blues;hiphop;rock).
*これが機能しないことはわかっていますが、これに似たものが存在します。
これを有効にする方法はありますか:
genre(blues).
gere(hiphop).
genre(rock).
このようなものに:
genre(blues;hiphop;rock).
*これが機能しないことはわかっていますが、これに似たものが存在します。
事実を統合することはできませんが、次のように単純なルールに変えることができます。
genre(X) :- member(X, [blues, hiphop, rock]).
member/2
リストのメンバーシップをテストするための SWIの組み込みリスト述語です。
これにより、リストのすべての要素に述語を適用でき、すべての適用が成功した場合にのみ成功します。
test_list( _, [] ).
test_list( F, [H|T] ) :- P =.. [F,H], P, test_list( F, T ).
この構文を使用できます
genre(X) :- X=blues ; X=hiphop ; X=rock.
しかし、個人的にはメンバーにアドバイスします/ 2ウェイ...