2017-03-24 8 views
0

私はプロローグには新しく、学習中は私が抱いている問題に遭遇しました。私は基本的にいくつかのデータベース事実を持っています。次のとおりです。リストをチェックするプロローグのクエリ

book(year(1937), title([of,mice,and,men]), rating_out_of_ten(9)). 
book(year(2008), title([the,hunger,games]), rating_out_of_ten(8)). 

タイトルに「of」という単語が含まれている書籍を検索しようとしています。これは私が試みたものです:

book(year, title, rating_out_of_ten), member(of, title). 

私はこれを行うときにfalseを返します。誰かが助けてくれますか?前もって感謝します。

答えて

2

もそうプロローグに新しいイムが、私は解決策を知っていると思う:あなたが実際に間違った述語を使用しているクエリで

  1. 、それは代わりに「映画」

  2. の「ブック」でなければなりません
  3. クエリは次のようになります。

book(X,title(Y),Z), member(of,Y)

引数は、あなたがこのように、リストの名前とその変数を使用する必要がリストの要素に到達することが、(彼らは変数でなければならない)大文字にする必要が:

title(Y) 

ので、あなたが使用することができます "メンバー述語ではY 'です。

+0

を笑映画の事は、私はそれを修正しますタイプミスのようなものでした。ありがとう! – jim

2

変数名は大文字(またはアンダースコア)で始まる必要があります。また、あなたの事実がbookであるときにmovieで本当に質問していますか?

あなたが試みることができる:

?- book(year(Y), title(T), rating_out_of_ten(R)), member(of, T). 
+0

はい、申し訳ありませんでした、タイプミス..ありがとう! – jim

関連する問題