А что касается производительности, рассмотрим:

ужна помощь в написании предиката в Прологе, который, учитывая число в качестве входных данных, возвращает список списков с числами, которые дополняют его.

Давайте назовем предикатaddUpList / 2, это должно работать так:

?- addUpList(3,P).
P = [[1,2], [2,1], [1,1,1]].       % expected result

У меня так много проблем с этим, я начинаю думать, что это невозможно. Есть идеи? Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос