У меня есть этот блок номеров:Пролог: Сравнение чисел в списке
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.
Что я думал, что было сделать список с выше блока чисел и сравнение заданного числа ко всем элементам списка. Но всякий раз, когда я пытаюсь загрузить .pl документ я получаю эту ошибку:
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/Процедура не будет работать так, как вы ожидаете. (например, 'incr (I, I)' всегда будет терпеть неудачу) – gusbro
Я только что добавил% теперь, чтобы указать, какие были переменные, это не в исходном коде, но спасибо за это. – eXistanCe