Elementary cellular automaton: Difference between revisions

Content added Content deleted
(→‎{{header|Perl 6}}: remove duplicate implementation; add link instead)
(→‎{{header|Elixir}}: change Dict(deprecated) -> Map, String.rjust -> String.pad_leading)
Line 518:
 
=={{header|Elixir}}==
{{works with|Elixir|1.3}}
{{trans|Ruby}}
<lang elixir>defmodule Elementary_cellular_automaton do
Line 526 ⟶ 527:
defp rule_pattern(rule) do
list = Integer.to_string(rule, 2) |> String.rjustpad_leading(8, ?"0")
|> String.split("", trim: true)codepoints |> Enum.reverse
Enum.map(0..7, fn i -> String.rjust(Integer.to_string(i, 2), |> String.pad_leading(3, ?"0") end)
|> Enum.zip(list) |> Enum.into(Map.new)
end
Line 536 ⟶ 537:
IO.puts String.replace(str, "0", ".") |> String.replace("1", "#")
str2 = String.last(str) <> str <> String.first(str)
next_str = Enum.mapmap_join(0..String.length(str)-1, fn i ->
DictMap.get(patterns, String.slice(str2, i, 3))
end) |> Enum.join
each(next_str, patterns, times-1)
end