プログラミングElixir 7章 ListsAndRecursion-0


このエントリーをはてなブックマークに追加

プログラミングElixir
の第7章

練習問題:ListsAndRecursion-0 (70ページ目ぐらいの問題)

以下を回答として考えてみたけど

1
2
3
4
5
defmodule MyList do
def sum2([]), do: 0
def sum2([head]), do: head
def sum2([head|tail]), do: sum2([head+sum2(tail)])
end

defの2つめ、sum2([head])部分が冗長的になりすぎてて

回答例みてみたら下記みたいにもっと簡単だった

1
2
3
4
defmodule MyList do
def sum3([]), do: 0
def sum3([head|tail]), do: head + sum3(tail)
end

doの後sumで二回も囲む必要はないみたい

foldLeft(左畳み込み)を意識して作ってみたのでまぁ練習にはなったかな


このエントリーをはてなブックマークに追加