副題は Scala による人工知能の実装
pp.44-45 のリスト 2-3 を実行すると、次の警告が出た。
PS C:\scala_ai> scala .\KnightsTour.scala -- Warning: C:\scala_ai\KnightsTour.scala:13:23 13 | if (rt != Nil) return rt // ルート探索成功、結果を返す | ^^^^^^^^^ |Non local returns are no longer supported; use scala.util.control.NonLocalReturns instead 1 warning found
これについて調べてみても、私の知りたい情報は出てこない。Scala で return を使うのは、 作法としてあまりよろしくないということはいろいろな本に書いてあるが、 では既存のコードを return を使わずに書くにはどうすればよいか、私にはわからない。
pp.49-50 にあるリスト 3-1 を実行すると、次の警告が出た。
PS C:\scala_ai> scala .\MissionariesAndCannibals.scala -- [E029] Pattern Match Exhaustivity Warning: C:\scala_ai\MissionariesAndCannibals.scala:18:27 18 | val (dir, stNew) = st match { // 移動記録作成(方向, 新たな状態) | ^^ | match may not be exhaustive. | | It would fail on pattern case: List(_*, _*, _, _*), List(_*), Nil | | longer explanation available when compiling with `-explain` 1 warning found
この警告(ウォーニング)は、場合分けを網羅していない、という意味なのだろう。では、どのようにすればこの警告が消えるのか、わからない。ウーム。
本書出版の時点では誤植ではなかったのかもしれないが、私が試した Scala の Ver.3 (3.2.2) では、この本の通りのコードではエラーが出た。 エラーが出ないように修正した一覧と思ってほしい。
場所 | 誤 | 正 | 備考 |
---|---|---|---|
p.37 リスト 上から 9 行目 | def start() { | def start() = { | 空行含む |
p.37 リスト 下から 2 行目 | new Queens(8).start | new Queens(8).start() | |
p.42 リスト 上から 1 行目 | new Queens1(4).start | new Queens1(4).start() |
書名 | 関数型オブジェクト指向 AI プログラミング |
著者 | 深井裕二 |
発行日 | 2015 年 11 月 2 日(初版) |
発行者 | 三恵社 |
定価 | 2100 円(税別) |
サイズ | |
ISBN | 978-4-86487-433-5 |
その他 | 越谷市立図書館で借りて読む |
まりんきょ学問所 > コンピュータの部屋 > コンピュータの本 > ニューロコンピューティング・人工知能 > 深井裕二:関数型オブジェクト指向 AI プログラミング