kiyoka.2011_10_03 RSSPLAIN

Related pages: !kiyoka.blog.list !kiyoka.blog.2011_10
555555555555555555555555555555555555545455554455555
5

[Scala][Nendo] Scaleの関数プログラミングのアプローチについて(2)

5
 4274068579  7つの言語 7つの世界: Bruce A. Tate
5

Scalaの章を読了した。

5

しかしこの本だけでは、Scalaがどうやって破壊的操作を検出するか/あるいはしないのかについての全体像はわからなかった。

5

わかったのは、varとvalがあり、valが破壊的操作を許さない変数を定義するためのもので、静的に破壊的操作を禁止するものだ。

5

ものによっては静的には検出できないので、その場合はランタイムで破壊的操作のエラー(例外)が出るというレベル。かなり浅い。

5

 

5

そこで、次の本で調べ始めた。

5
 0981531644  Programming in Scala: Martin Odersky, Lex Spoon, Bill Venners
5
 
5
 ※ 後で知ったが、下のリンクで本の中身が公開されている。
5
 紙の本でいうとChapter 2だ。
5
 First Steps to ScalaEXT
5
 Summary In this article, you'll follow twelve steps that are designed
5
  to help you understand and gain some basic skills in the Scala
5
  programming language.
5

 

5

 

5

さっそく、O'REILLY Safari Bookshelfで上記「Programming in Scala」を本棚

5

に登録し、まえがきにも、チュートリアルの章にも目もくれず、目次から一直線

5

に「Chater 17のCollectionsの章」にジャンプした。

5

そこから、「前のChapterで説明した…」とかのリンクを辿ること数回、次の文

5

章に辿りついた。どうも各Collection型の操作ライブラリにはimmutableと

5

mutableの二つのバージョンがあるようだ。ものによると、immutableバージョ

5

ンしか無い型もあるようだ。

5
 [Page 47]
5
 Step 10. Use Sets and Maps
5
  imperative styles, its collections libraries make a point to
5
  differentiate between mutable and immutable collection classes. For
5
  example, Arrays are always mutable, whereas Lists are always
5
  immutable. When it comes to Sets and Maps, Scala also provides
5
  mutable and immutable alternatives, but in a different way. For Sets
5
  and Maps, Scala models mutability in the class hierarchy.
5

sets

5

 

5

これで概略が掴めた。プログラマがそのメソッドを完全にimmutableにしたけれ

5

ば、注意してimmutableな部品を選んでプログラミングする必要があるわけだ。

4

また、必要な部品郡は概ね足りているのだろう。

5

 

4

ただ、私が一番知りたいのは、immutableなコードの中にmutableなコードが混在し

5

たことを検出できるかどうかだ、うっかり混在させることはよくあることだと

5

思うからだ。できればコンパイル時に検出されるのが望ましい。

5

 

5

もし、Actorモデルなどの並行性を構築したい場合、うっかり破壊的なコード

4

(mutableなどコード)が混在してしまっては非常に原因を調べるのが難しいと考

4

えられる。

5

 

5

もうちょっと調査が必要。

5

 

5

 

5

...comment disabled...