開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Elixir (プログラミング言語)
Seven More Languages in Seven Weeks (Bruce Tate (著)、Ian Dees (著)、Frederic Daoud (著)、Jack Moffitt (著)、Pragmatic Bookshelf)のChapter 3(Elixir)、Day 1(Laying a Great Foundation)、Do (Hard)(No. 4229).を取り組んでみる。
Do (Hard)(No. 4229)
コード(Emacs)
#!/usr/bin/env elixir
defmodule Tree do
def traverse(tree) do
traverse(tree, 0)
end
def traverse({node, {left, right}}, indent) do
IO.write replicate_space(indent)
IO.puts "#{node}"
traverse(left, indent + 2)
traverse(right, indent + 2)
end
def traverse(node, indent) do
IO.write replicate_space(indent)
IO.puts "#{node}"
end
def replicate_space(n) do
if n == 0 do
""
else
" #{replicate_space(n - 1)}"
end
end
end
Tree.traverse("SeeSpot.")
IO.puts ""
tree = {"See Spot.", {"See Spot sit.", "See Spot run."}}
Tree.traverse(tree)
IO.puts ""
Tree.traverse({"See spot", {tree, {"See spot", {tree, "See spot"}}}})
入出力結果(Emacs, Terminal, elm repl)
$ ./hard.exs SeeSpot. See Spot. See Spot sit. See Spot run. See spot See Spot. See Spot sit. See Spot run. See spot See Spot. See Spot sit. See Spot run. See spot $
0 コメント:
コメントを投稿