Я читал о том, насколько велики различия в списках, и надеялся протестировать некоторые примеры из книг. Но кажется, что вы не можете передавать списки в качестве входных данных точно так же, как, например, append ([1,2,3], [4,5], X), где X = [1,2,3, 4,5]. Как ни странно, ни в одной книге, к которой я обращался, никогда не упоминается об этом.
Я запускаю код на swipl, и мне интересно протестировать предикат добавления разницы:
dapp(A-B,B-C,A-C).
и предикат «повернуть первый элемент списка»:
drotate([H|T]-T1,R-S) :- dapp(T-T1,[H|L]-L,R-S).
Есть идеи, как я могу проверить эти предикаты в swipl?