『Programming Elixir 1.6』の練習問題の解答ページ
上記ページの"Exercise Solutions"というリンクから各問題の解答が書かれたPDFをダウンロードできる。
私の手元にあるのは『Programming Elixir 1.2』を和訳した『プログラミングElixir』だから細部は違うと思うが、概ね合致しているはず。
それと、コピペ防止なのか一部の問題の解答の記述がそのままElixir言語のプログラムになっていない箇所があった。
具体的には、PDF18ページ目の"Exercise: Lists and Recursion-7 (Page 114)"の解答である。
# Exercise: Lists and Recursion-7 (Page 114) # span関数と内包表記で2からnまでの素数のリストを作る問題 # リスト内包表記の構文が'lc'と'inlist'という文字に置き換わっている defmodule MyList do def span(from, to) when from > to, do: [] def span(from, to), do: [ from | span(from+1, to) ] def primes_up_to(n) do range = span(2, n) # ここが動かない range -- (lc a inlist range, b inlist range, a <= b, a*b <= n, do: a*b) # こう書き直したら動いた range -- (for a <- range, b <- range, a <= b, a*b <= n, do: a*b) end end
どうして'lc'と'inlist'という言葉が使われているかはPDFには書かれていなかった。
おそらく原著には書かれていると思われる。
さらに余談だが、『プログラミングElixir』に書かれている練習問題の解答を議論したフォーラム(https://forums.pragprog.com/forums/322)は、現在アクセスできない模様。
リダイレクト先もフォーラムサイトのようだが同じトピックは扱っていないみたい。
さらにさらに余談だが、『Programming Elixir 1.6』のエラッタ等は下記のリンクから確認できる。
devtalk.com