это мой первый вопрос здесь, я новичок в прологе, и я делаю домашнюю работу для школы.
Я должен составить список списков, и я боролся с ними в течение 2 дней,Может быть, некоторые из вас могут мне помочь.
Это то, что я должен сделать:
С записью такой вещи:
evaluateList([f(14),_,_,_,_,f(31),_,_],E)
E должно быть:
E = [14,[_,_,_,_],31,[_,_]]
Я пытался сделать это, но не могу получить ожидаемый результат:
evaluateList([],[]).
evaluateList([H|T], [S]) :- var(H), do_vars([H|T],S), !.
evaluateList([f(N)|T],[N|S]) :- evaluateList(T,S), !.
do_vars([],[]).
do_vars([H|T],[H|S]) :- var(H), do_vars(T,S).
После запуска кода:
evaluateList([f(14),_,_,_,_,f(31),_,_],E)
Яполучение:
E = [14, _1378, _1384, _1390, _1396, 31, [_1414, _1420]]
Я имею в виду, я получаю «внутренний список», но только в последнем пункте.
Есть какие-нибудь предложения?
Спасибо