[問題] prolog一個小問題

看板Programming作者 (Arim5566)時間13年前 (2011/12/17 21:01), 編輯推噓0(0014)
留言14則, 2人參與, 最新討論串1/1
各位版友好 假如我的fact跟rule如下: course(cse320, [cse300], 4). course(cse222, [cse100, cse115], 3). course(cse400,[cse100], 3). student(john, [cse320, cse222]). student(mary, [cse320]). instructor(jim, [cse320, cse100]). instructor(alpha,[cse222]). course_credit(X,Y) :- course(X,P,Y). 現在我的query下 course_credit(X,3). 本來以為應該會執行course(X,P,3). 然後從第一條到第三條事實找答案 照理說應該根據第二條根第三條事實會正確(有兩組答案) 可是prolog卻是回傳no trace之後發現他不會執行coures(X,P,3) 而是只有呼叫course_credit(X,3)就停了(而且還call fail) 但是如果是直接query打course(X,P,3)是執行正確的 請問我在這邊哪裡寫錯了?? -- ~宅男的四個徵兆~ ∠□ ○ ! * \○/ ★    (○ ? ╦╦└□ " ○□═ □   □> ║║√√ ╦══╦ ∥    |\ 一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.197.57 ※ 編輯: Arim 來自: 114.32.197.57 (12/17 21:06)

12/17 21:18, , 1F
你用哪一套Prolog軟體?
12/17 21:18, 1F

12/17 21:19, , 2F
SWI-prolog
12/17 21:19, 2F

12/17 21:20, , 3F
怪了,我也用SWI,不過query你那程式有結果.
12/17 21:20, 3F

12/17 21:21, , 4F
5.8.2
12/17 21:21, 4F

12/17 21:21, , 5F
請問你是把上面我貼的fact跟rule拿去編譯嗎?
12/17 21:21, 5F

12/17 21:22, , 6F
沒錯. 就算用看的,也覺得應該沒問題.
12/17 21:22, 6F

12/17 21:22, , 7F
..怪了 剛剛跑了一下 發現執行正常有結果..
12/17 21:22, 7F

12/17 21:23, , 8F
我再仔細看一下 謝謝版友的幫忙
12/17 21:23, 8F

12/17 21:24, , 9F
是不是寫好忘了重新consult呢?
12/17 21:24, 9F

12/17 21:25, , 10F
我一開始是直接拿文字檔(txt)去編譯
12/17 21:25, 10F

12/17 21:25, , 11F
後來把他修成.pl檔 就正常..
12/17 21:25, 11F

12/17 21:26, , 12F
可是我想應該不是那個問題..可能是query打錯
12/17 21:26, 12F

12/17 21:27, , 13F
還是謝謝版友的幫忙:)
12/17 21:27, 13F

12/17 21:30, , 14F
或者不小心打了小寫x,就變成atom
12/17 21:30, 14F
文章代碼(AID): #1Ex9ACd6 (Programming)
文章代碼(AID): #1Ex9ACd6 (Programming)