Using Permute to Sort (Inefficiently)
sorted( [ A, B | R ] ) :- A = < B ,
sort2( L, S ) :- permute( L, S ), sorted( S ) .
sort2( [ 2, 3, 1 ], Ans )
permute( [ 2, 3, 1 ], Ans )
permute( [ 2, 3, 1 ], [ 2, 3, 1 ] ) sorted( [ 2, 3, 1 ] )
permute( [ 2, 3, 1 ], [ 3, 2, 1 ] ) sorted( [ 3, 1, 2 ] )
permute( [ 2, 3, 1 ], [ 3, 1, 2 ] ) sorted( [ 3, 1, 2 ] )
permute( [ 2, 3, 1 ], [ 1, 2, 3 ] ) sorted( [ 2, 1, 3 ] )
permute( [ 2, 3, 1 ], [ 1, 2, 3 ] ) sorted( [ 1, 2, 3 ] )