Beginning Scala programming4
初心者ぺちぱーがGitHubでScalaレッスンを始めたぞ。今回は、4回目の問題の続きとして、与えられた数が素数かどうかを判定する関数を追加してみよう。
引き続き、練習問題はここのページだ。
素数判定
与えられた数が素数かどうか調べる
前回までの内容で、与えられた数までの素数を取得することができた。今回はその中に与えられた数が含まれるかどうかを判定できるようにしよう。
前回書いたコードはこんなやつだ。
toList(max)
を実行して、List
を取得した後、その中に、引数の数字が含まれるかどうかを調べればいいわけだ。PHPだとin_array()
みたいな関数だけど、Scalaだと、List
クラスにcontains()
というメソッドがある。scala.collection.immutable.Listのドキュメントによると、こんなシグネチャーだ。
ちょっと使ってみよう。
動いてそうだな。じゃあ書いてみよう。
なんか簡単に書けるよね。
テストーーー
よしよし。大丈夫そうだ。
Refactor
toList(max)
を書いたときもそうだったけど、1以下の場合は、素数の定義上、そもそも素数がないことが分かっているから、toList(max)
を実行する必要はなくて、false
を返せばいいし、2の場合もtrue
を返せばいいわけだから、ちょっと変更してみよう。
動いてそうね。
Stream
全部の要素を計算する必要がない場合には、こんなやり方もあるらしい。Scalaって~~こわい~~奥が深いんだなー。。
Conclusion
4回目のレッスンもGitHubに上げてある。今日はあんまり大したことしてないな。まとめ!
contains()
使ってみた
Stream
が使えるようになると、~~モテモテ~~いろいろできるらしい