学习目标:
利用prolog编程实现列表元素的全排列。
例如:
- 输入[a,b,c],得到abc;acb;bca;bac;cab;cba.
代码如下;
del(A,[A|B],B).
del(A,[B|C],[B|D]):-del(A,C,D).
insert(A,S,B):-del(A,B,S).
per([],[]).
per([H1|T1],N):-per(T1,A),del(H1,N,A).
最终效果:
在swi-prolog解释器中输入:
per([a,b,c],X),即可得到最终结果,具体递归过程可自行演练