我有一個數字塊:序言:在列表比較數字
num(1).
num(-2).
num(5).
num(50).
num(-3).
num(87).
我應該做的是給定一個數它應該檢查這個數字是最小的那個「功能列表「的數字。
例如:
not_smallest(5).
true.
not_smallest(X).
X = 1 ;
X = -2 ;
X = 5 ;
X = 50 ;
X = 87.
我認爲是做與數字的上面塊列表,並比較給定數量到列表中的所有元素。 但每當我嘗試加載特等DOC我得到這個錯誤:
Syntax error: Operator expected
是我迄今所做的是這樣的:
%increments the index of a List
incr(X, X1) :-
X1 is X + 1.
%L-list containing "list" of numbers, N - elements of that "list",
I-index , C-number X is going to be compared to, X- number to compare.
nao_menor(X) :-
findall(N, num(N), L),
num(X),
I is 0,
nth0(I, L, C),
X =< C,
incr(I,I).
「 %'字符指定了一個註釋行(不能有換行符),所以你應該在行'I-index ....'的開頭加'%'或者把這兩行放在一行中 – gusbro
也是你的'nao_menor/1'程序將無法按預期工作。 (例如'incr(I,I)'將始終失敗) – gusbro
我剛剛添加了%來指定變量是什麼,它不在原始代碼中,但是感謝您的支持。 – eXistanCe