2016年6月8日水曜日

開発環境

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 (Medium)(No. 4229).を取り組んでみる。

Do (Medium)(No. 4229)

コード(Emacs)

#!/usr/bin/env elixir

defmodule MyList do
  def size([]), do: 0
  def size([_|tail]), do: 1 + size(tail)
  def max([head|[]]), do: head
  def max([head|[head0|tail]]) do
    if head > head0 do  
    max([head|tail])
    else
      max([head0|tail])
    end  
  end
  def min([head|[]]), do: head
  def min([head|[head0|tail]]) do
    if head < head0 do
      min([head|tail])
    else
      min([head0|tail])
    end
  end
end

list = [5, 1, 4, 2, 3]
IO.puts "list: #{inspect list}"
IO.puts "size: #{MyList.size(list)}"
IO.puts "max: #{MyList.max(list)}"
IO.puts "min: #{MyList.min(list)}"

入出力結果(Emacs, Terminal, elm repl)

$ ./medium.exs
list: [5, 1, 4, 2, 3]
size: 5
max: 5
min: 1
$

0 コメント:

コメントを投稿