Prolog,谓词交换1到0和0到1并将它们放在一个列表中

Mit*_*os 1 binary swap prolog digits

Prolog新手.我想要一个交换1到0和0到1的程序并回答这个问题:

?- swap([1,1,0,1,0,0,0,1], L2).
L2 = [0,0,1,0,1,1,1,0]
Run Code Online (Sandbox Code Playgroud)

dan*_*lei 6

complement(0, 1).
complement(1, 0).

swap(X, Y) :- maplist(complement, X, Y).
Run Code Online (Sandbox Code Playgroud)

  • @Mitsos是的,有几种其他方法可以递归地执行此操作.您可以查看[99 Prolog Problems](http://www.ic.unicamp.br/~meidanis/courses/mc336/2009s2/prolog/problemas/)并专注于列表处理的示例,以了解如何开始.在这一点上,很难说你知道多少Prolog,这不是开始Prolog的教程网站.它更适用于询问特定的编码问题. (3认同)