Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!ll.mit.edu!vdd.VLSI.LL.MIT.EDU!bloom-beacon.mit.edu!news.kei.com!news.mathworks.com!udel!gatech!swrinde!pipex!uunet!zib-berlin.de!ceres.fokus.gmd.de!nntp.gmd.de!urmel.informatik.rwth-aachen.de!newsserver.rrzn.uni-hannover.de!rz.uni-hildesheim.de!chris
From: chris@rz.uni-hildesheim.de (Christoph Lehner)
Subject: Re: Permutation Predicate in Prolog.
Message-ID: <1994Nov15.201434.26983@rz.uni-hildesheim.de>
Sender: news@rz.uni-hildesheim.de
Organization: Universitaet Hildesheim, RZ
X-Newsreader: TIN [version 1.2 PL2]
References: <Cz9DzI.1GB@westminster.ac.uk>
Date: Tue, 15 Nov 1994 20:14:34 GMT
Lines: 22

Kaustav Bhattacharya (tjdec@westminster.ac.uk) wrote:
: Can anybody help me out with creating a permutation predicate in Prolog.  I'm
: really stuck.  All it needs to do is take in a list of numbers and produce a
: permutation of all the numbers in every posible order.

: Kaustav.

Maybe the easiest is:

del(X,[X|R],R).
del(X,[Y|R],[Y|R1]):-
	del(X,R,R1).


perm([],[]).
perm(L1,[X|R]):-
	del(X,L1,L2),
	perm(L2,R).


But be aware of the fact, that perm/2 is not symetric (but can be made 
symetric)!
