defmodule Langtons do def ant(sizex, sizey) do {px, py} = {div(sizex,2), div(sizey,2)} # start position move(MapSet.new, sizex, sizey, px, py, {1,0}, 0) end defp move(plane, sx, sy, px, py, _, step) when px<0 or sx IO.puts Enum.map(0..sx, fn i -> if {i,j} in plane, do: "#", else: "." end) end) end end Langtons.ant(100, 100)