文字列の入れ替え

30分プログラム、その785。anarchy golf - permutaterにインスパイアされました。
文字列に対してpermutationを適用します。

使い方

1> permutater:permutater("hoge").
["hoge","hoeg","hgoe","hgeo","heog","hego","ohge","oheg",
 "oghe","ogeh","oehg","oegh","ghoe","gheo","gohe","goeh",
 "geho","geoh","ehog","ehgo","eohg","eogh","egho","egoh"]

ソースコード

-module(permutater).
-compile([export_all]).

permutater([]) ->
    [[]];
permutater(Xs) ->
    [ [Y | Ys ] || Y <- Xs ,
		   Ys <- permutater( lists:delete(Y, Xs)) ].