Я довольно новичок в Прологе и мне нужно решить задачу.Поэтому мне нужно сравнить два списка и проверить, имеют ли они одинаковую длину и содержат нечетное количество элементов.Мне разрешено использовать только следующие встроенные операторы:!и не удается.
Код работает до сих пор, но когда я хочу получить следующее от Пролога:
guu([a,b,c],X).
Я получаю это:
X = [_900, _906, _912]
но то, что я хочуэто:
X = [a, b, c]
или:
X = [a , a, a]
Мой код пока:
guu([_],[_]):- !.
guu([_,_],[_,_]):- fail, !.
guu([],[]):- fail, !.
guu([],[_]):- fail, !.
guu([_],[]):- fail, !.
guu([_,_|Tail1], [_,_|Tail2]):- guu(Tail1,Tail2).
Я думаю, что что-то напутал с оператором "_", ноidk: /
Исправлено с помощью:
guu([H|T],[H|T]):-!.
guu([_],[_]):- !.
guu([_,_],[_,_]):- fail, !.
guu([],[]):- fail, !.
guu([],[_]):- fail, !.
guu([_],[]):- fail, !.
guu([_,_|Tail1], [_,_|Tail2]):- guu(Tail1,Tail2),!.