Почему в консоли Пролога получаю False?

Создал на Прологе программу. Она разделяет список на два списка. Разделителем служит число N. Всё, что меньше N, отправляется в L1, всё, что больше - в L2. Программа:

% Предикат для разделения списка на два подсписка
split_list([], _, [], []).
split_list([X|L], N, L1, L2) :-
    X < N,
    split_list(L, N, [X|L1], L2).
split_list([X|L], N, L1, [X|L2]) :-
    X >= N,
    split_list(L, N, L1, L2).

Программу записал в файл split с расширением .pl "Блокнота". Файл поместил в рабочую папку.
Перешел в диалоговое окно для взаимодействия с Прологом. После приглашения к диалогу ?- ввел название файла:

?-[split].

Получил ответ Пролога True. Далее ввел команду для загрузки программы из файла:

?- consult('split.pl').

Получил ответ Пролога True. Затем ввел строку (не как комментарий, а в качестве кода):

?- split_list([1,2,3,4,5,6], 3, L1, L2).

Получил ответ Пролог False. В чем причина?

Использую версию SWI-Prolog


Ответы (1 шт):

Автор решения: Alex_Kazantsev

Исправил код следующим образом:

% Предикат для разделения списка на два подсписка
split_list([], _, [], []).
split_list([X|L], N, [X|L1], L2) :-
    X =< N, 
    split_list(L, N, L1, L2).
split_list([X|L], N, L1, [X|L2]) :-
    X > N,
    split_list(L, N, L1, L2).

Определил, что разделитель попадает в первый список. В итоге получил списки следующим образом:

?- split_list([1,2,3,4,5,6], 3, L1, L2).
L1 = [1, 2, 3],
L2 = [4, 5, 6]
→ Ссылка