1
有人能告訴我我的If If else在我的搜索中,在子列表中有什麼問題。如果在序言中有其他錯誤條件
因爲當大小爲0時,條件工作,但如果值變爲1,2和3,它會出現錯誤,但關係運算符不正確?
如果可變長度的大小= 0,則條件起作用,但如果可變長度的大小爲3,則它有錯誤。
錯誤是:
例外:> =π/ 2:參數不能充分地實例化。
subList([], []).
subList(List1,List2):-
concatenate(List1,List2,Result1),
equalelements(Result1,Result2),
counting(Result2,Length),
Length =< 2
-> false
; Length >= 3
-> true.
searchdisease([],_).
searchdisease(Symptoms,Disease) :-
disease(Ls, Disease),
subList(Symptoms, Ls).
counting([ ],0).
counting([_| T], N) :-
counting(T, N1),
N is N1 + 1.
concatenate(L1, L2, NL) :-
append(L1, L2, L12),
msort(L12, NL).
Lenght是列表大小的返回變量,返回大小爲0的時間,返回大小爲1或大小爲2,3,4等的時間。所以我檢查列表的大小是否小於或等於2或更大或等於3. –
我縮進了你的規則:現在你看到'Length'對於'Length> = 3'是沒有實際意義的' – false
長度是謂詞Counting的返回值,它返回變量長度中的列表大小。 –