我有2個列表,其中包含隨機數的元素。例如A = [1,2,4,5]和B = [1,2,3]。結果應該是2 ,我試圖代碼:計算兩個列表中匹配元素的數量
domains
Numbers1 = integer*
Numbers2 = integer*
int_list=integer*
predicates
nondeterm prinadl(integer, int_list)
clauses
//here going the code that read number that I've entered, and according to entered numer,programm should do something
answer(T):- T=5,
P = 0,
write ("Enter the 1st list"), readterm (int_list, L),
write ("Enter the 2nd list"), readterm (int_list, L2),
L2 = [H|V], prinadl(H, L), P1 = P + 1,
write(L2, P1, V).
prinadl (X, L):- L=[X|_], !.
prinadl (X, L):- L=[_|T], prinadl (X, T).
我與序言全新的。你能說我錯了嗎?我需要的是獲得打印到控制檯的匹配數量。 在此先感謝。
似乎大多是隨機碼...什麼是邏輯your're以下?應該很容易,因爲訪問這兩個列表並添加1,當兩個元素匹配時 – CapelliC
@CapelliC是的,它幾乎是隨機的,我複製了來自不同示例的部分。不知道我應該如何創建兩個嵌套的'foreach' 我的意思是:如何從第一個列表中選擇第一個元素並檢查L2中的所有元素,然後獲取L的第二個元素並檢查L2 – Satevg
處理訪問* both *使用單個遞歸謂詞列表時,應該添加一個計數器,當兩個列表具有相同的頭時,計數器會遞增。不要忘記,當其中一個清單變空時,訪問將會停止。在那裏你可以將計數器初始化爲0. – CapelliC