我試圖在序言中找到列表的第n個元素。這裏是我嘗試使用代碼:序言:查找列表中的第N個元素
Cells = [OK, _, _, _, _, _] .
...
next_safe(_) :-
facing(CurrentDirection),
delta(CurrentDirection, Delta),
in_cell(OldLoc),
NewLoc is OldLoc + Delta,
nth1(NewLoc, Cells, SafetyIdentifier),
SafetyIdentifier = OK .
基本上,我想檢查是否一個給定的細胞是「OK」遷入。我錯過了什麼嗎?
NTH1/3 - 從 「1」 計數(不像往常一樣「0」)。這是你的問題嗎? 順便說一句,你試圖統一安全與「確定」移動。這與「檢查」不同。實際的「檢查」可能會出現在其他某個地方,它會嘗試將這種安全與非「OK」統一起來,並且您將進入回溯。 – ony 2010-04-06 04:17:07
我發現無論出於何種原因NewLoc始終是0.是否有這樣的原因?我似乎無法弄清楚? 此外,我不確定我是否理解了答案的後半部分(僅在幾天內編程序)。 – Julio 2010-04-06 04:24:26