我想算一個元素有多少次出現在列表中的特定元素的數量,到目前爲止,我還與計數在序言名單
rate(X,[H|T],N):-
X == H,
N is N+1,
rate(X,T,N).
rate(X,[_|T],N) :-
rate(X,T,N).
rate(_,[],N) :-
N is 0.
來到了我已經介紹了當一個找到匹配項,當沒有匹配項並且到達列表末尾時。但是,當我測試我得到
43 ?- rate(4,[4,2,3,4,4,2],X).
ERROR: is/2: Arguments are not sufficiently instantiated
Exception: (6) frequency(4, [4, 2, 3, 4, 4, 2], _G393) ?
什麼參數我精確缺失?
我現在明白了,非常感謝處理自由變量的解釋! – rex 2012-08-12 17:10:24
你不需要步驟'X \ = Y'。只要在前一個謂詞中進行切分,就是當他們*做*相等的時候。 – Ash 2016-03-11 00:41:28