Я работаю над базовым проектом в Prolog. Я хочу написать функцию, которая возвращает число, основанное на списке ввода. Я также хочу убедиться, что, когда список ввода пуст, результат будет ложным. Функция должна быть такой: parseList (List, N), где N - число. Я хотел бы знать способ, который возвращает False, когда мы попробуембазовый регистр для возврата false на условие пролог
parseList([], N).
где N - любое число.
Я попытался сделать это для базового случая
parseList([], False).
Однако, это не похоже на работу.
Может ли кто-нибудь помочь мне в этом? Спасибо!
Вы не «возвращаете» значение «false» в Prolog. Предикат терпит неудачу (результат «false»), если он не может преуспеть в заданных аргументах. Таким образом, отсутствие предложения предиката, которое поддерживает пустой список, автоматически завершится ошибкой. Просто оставьте 'parseList ([], N)' из вашего кода. – lurker
Но, не должно быть базового случая для поддержки предиката, .i.e. точка остановки для предиката, когда список не пуст? – therealdev
Ваш базовый футляр не должен обрабатывать пустой список. Он может обрабатывать список из одного элемента: * eg *, 'parseList ([X], N): - ...', тогда ваш рекурсивный случай может обрабатывать два или более элемента, 'parseList ([X, Y | T], N): - ... '. – lurker