0
有沒有辦法讓prolog規則只執行一次? 例如,我有這樣的算法,副本第一和每一個第n個元素從列表1到列表2:Prolog使規則執行一次
ith_element(N, List1, List2) :-
X is N - 1,
length(A,X),
append(A, [Head | Tail], List1),
everyNth(N, Tail, Rest ->
List2 = [Head | Rest]
; List2 = [Head | []]
).
我能以某種方式使該會的第一要素,從列表1只複製一次的規則?我只是在學習Prolog,在任何地方都找不到類似的東西。
這就是我會這麼做的,但目標是不使用輔助謂詞。這個問題正在把我推上牆。 – user3614293 2014-09-21 06:11:37
不能使用任何支持謂詞,只能追加和長度。 – user3614293 2014-09-21 17:45:05
然後交換規則。 'everyNth(every(N),List1,List2):-'只在需要時纔會觸發 – CapelliC 2014-09-21 17:53:18