とりあえず写経

Scala,おらもJavaとの比較アプローチはもはやイミフなので、xibbarさんにならい、Rubyと比較することにしよう。
で、とりあえず、xibbarさんの9/15のやつを写経。
チュートリアルの奴は自分もやった覚えはあるんだけど、さっぱり定着しなかった。
Rubyと比較すれば定着するかな。

Scala

object Timer{
  def oncePerSecond(callback: => unit){
    while (true) { callback; Thread sleep 1000 }
  }
  def timeFiles() {
    println("time files like arrow...")
  }
  def main(args: Array[String]){
    oncePerSecond(timeFiles)
  }
}


Ruby

def once_per_second(&block)
  while (true)
    block.call
    sleep 1
  end
end
time_flies = proc do
  puts "time flies like an arrow..."
end

once_per_second(&time_flies)


Scala
匿名関数

object Timer {
  def oncePerSecond(callback: => unit) {
    while (true) { callback; Thread sleep 1000 }
  }
  def main(args: Array[String]) {
    oncePerSecond(()=>
      println("time flies like an arrow...")
    )
  }
}


Ruby

def once_per_second(&block)
  while (true)
    block.call
    sleep 1
  end
end

once_per_second{puts "time flies like an arrow..."}


Scala
ブロック #ymnkさん

object Timer {
 def oncePerSecond(callback: => unit) {
  while (true) { callback; Thread sleep 1000 }
 }
 def main(args: Array[String]) {
  oncePerSecond{println(”time flies like an arrow...”)}
 }
}

Scala
http://www.ibm.com/developerworks/jp/java/library/j-scala01228.html

object Timer {
  def periodicCall(seconds: Int,callback: => unit ) {
    while(true) { callback; Thread.sleep( seconds * 1000) }
  }
  def main(args: Array[String]) {
    periodicCall(1,println("time flies like an arrow.."))
  }
}