Пролог не показывает вывод так, как я хочу / нужен - PullRequest
0 голосов
/ 08 мая 2019

Я довольно новичок в Прологе и мне нужно решить задачу.Поэтому мне нужно сравнить два списка и проверить, имеют ли они одинаковую длину и содержат нечетное количество элементов.Мне разрешено использовать только следующие встроенные операторы:!и не удается.

Код работает до сих пор, но когда я хочу получить следующее от Пролога:

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),!.

1 Ответ

1 голос
/ 08 мая 2019

Исправлено с помощью:

guu([H|T],[H|T]):-!. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...