在我的節目,我有這樣一些規則:關於prolog中的規則。 。
tellme(X) :- knows(X).
tellme(friends1(X)) :- tellme(X).
tellme(friends2(X)) :- tellme(X).
tellme(friends3(X)) :- tellme(X).
.
.
.
tellme(friends25(X)) :- tellme(X).
現在這個friends1,friends2,friends3 .....依賴於N的是一個變量。在這裏,例如,我的N的值是25.那麼是否可以編寫一個規則來生成這些規則直到N或我必須手動將這些規則寫入N次。歡迎任何建議或解決方案。非常感謝您的關注。
但它給了我這個錯誤:錯誤:頂級:未定義的過程:gen_tellme/1(DWIM無法更正目標) – anilonwebs 2011-03-14 09:26:46
@anilonwebs:您需要在同一個文件中同時查看兩個謂詞。第一個定義一個術語擴展規則,第二個使用它。 「gen_tellme()」是擴展的,它不會成爲一個真正的謂詞。不要在提示中嘗試。把它放在一個文件中。 – 2011-03-14 09:32:15
查看基礎案例缺失的第一件事,即我的問題部分的第一條規則。所以我把它添加到一個文件中。 '告訴(X): - 知道(X).','知道你的定義規則(anil).'。但是當我對「tellme(friends1(anil))」進行查詢時,它給了我一個錯誤的結果。我已將所有代碼寫入單個文件。 – anilonwebs 2011-03-14 09:54:33