Elixir 練習問題 ListsAndRecursion-5

次の関数を、ライブラリやリスト内包表記を利用せずに実装しろ、と。

  • all?
  • each
  • filter
  • split
  • take

順番に行ってみよう。まずは all?

^o^ > iex practice_10_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)> MyList.all?([true, true, true])
true
iex(2)> MyList.all?([true, false, true])
false

つぎに each

iex(3)> MyList.each([1, 2, 3], &IO.puts/1)
1
2
3
nil

nileach 自体の返り値かな。
つぎ、filter

iex(4)> MyList.filter([1, 2, 3, 4, 5], &(&1 > 2))
[3, 4, 5]

split

iex(5)> MyList.split([1, 2, 3, 4, 5], 2)
{[1, 2], [3, 4, 5]}

最後に take

iex(6)> MyList.take([1, 2, 3, 4, 5], 3)
[1, 2, 3]