Elixir 練習問題 ModulesAndFunctions-1~3

まずは、本の説明に出てきた Time モジュールに triple 関数を追加。

defmodule Times do

  def doubles(n) do
    n * 2
  end

  def triple(n) do
    n * 3
  end

end

そしてこれを2つのやり方で実行。1つは iex の引数として読み込んで実行する。

^o^ > iex practice_6_1.exs
Eshell V8.0  (abort with ^G)
Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Times.triple(2)
6

もう1つのやり方は、iex の中で c コマンドを使ってファイルをコンパイルして読み込む。

^o^ > iex
Eshell V8.0  (abort with ^G)
Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> c "practice_6_1.exs"
[Times]
iex(2)> Times.triple(2)
6

こっちのやり方だと、モジュールをコンパイルした Elixir.Times.beam ファイルができるんだな。

最後に、Time モジュールに quadruple 関数を追加。

defmodule Times do

  def doubles(n) do
    n * 2
  end

  def triple(n) do
    n * 3
  end

  def quadruple(n) do
    doubles(n) * doubles(n)
  end

end

実行してみる。

^o^ > iex practice_6_3.exs
Eshell V8.0  (abort with ^G)
Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Times.quadruple(2)
16