2015年6月19日金曜日

[Elixir]文字列をシャッフルする

Enum.shuffle()を使って、文字列をランダムにシャッフルする。

defmodule MyModule do
    def shuffle( str ) do
        :random.seed(:os.timestamp)   # これがないと、いつもシャッフル後の文字列が同じとなる。
        shuf = Enum.shuffle( String.codepoints( str ) )
        Enum.join( shuf )
    end
end

str = "abcde"
IO.puts MyModule.shuffle( str )
IO.puts MyModule.shuffle( str )

出力例

PS C:\Users\tomohiko\Documents\19_elixir> elixir .\test_shuffle.exs
adbce
dbeac