Sorting algorithms/Permutation sort: Difference between revisions

(→‎{{header|Common Lisp}}: CL predicate style)
Line 220:
insert e l@(h : t) = return (e : l) `mplus`
do { t' <- insert e t ; return (h : t') }</lang>
{{works with|GHC|6.10}}
<lang haskell>import Data.List (permutations)
 
permutationSort l = head [p | p <- permutations l, sorted p]
 
sorted (e1 : e2 : r) = e1 <= e2 && sorted (e2 : r)
sorted _ = True</lang>
 
=={{header|Icon}}==
Anonymous user