2016年5月27日金曜日

開発環境

7つの言語 7つの世界 (Bruce A. Tate (著)、まつもとゆきひろ (監訳)、田和 勝 (翻訳)、オーム社)の第5章(Scala)、5.3(2日目: ラスベガスをぶっとばせ)、セルフスタディ2日目.(藪を刈り込む)を取り組んでみる。

セルフスタディ2日目.(藪を刈り込む)

コード(Emacs)

val strs = List("Scheme", "Scala", "C", "Java", "JavaScript")
val len = strs.foldLeft(0)((sum, str) => sum + str.length)

strs.foreach( str => println(str, str.length) )
println(len)

trait Censor {
  val strMap = Map("Shoot" -> "Pucky", "Darn" -> "Beans")
  def replace (word: String) : String = {
    if (strMap.keys.exists((w) => w == word)) {
      strMap(word)
    } else {
      word
    }
  }  
}

class Words(words:List[String]) extends Censor {
  def p() {
    words.foreach(word => println(word + " -> " + replace(word)))
  }
}

val words = new Words(strs ++ List("Shoot", "Darn", "Pucky", "Beans"))

words.p()

入出力結果(Terminal, REPL(Read, Eval, Print, Loop))

$ scala-2.11 sample.scala
(Scheme,6)
(Scala,5)
(C,1)
(Java,4)
(JavaScript,10)
26
Scheme -> Scheme
Scala -> Scala
C -> C
Java -> Java
JavaScript -> JavaScript
Shoot -> Pucky
Darn -> Beans
Pucky -> Pucky
Beans -> Beans
$

0 コメント:

コメントを投稿