[[ネタ記録庫/Scala/Android/sbt-0.11.2]]

* ScalaにもOCamlやF#のようなLazy型が欲しい気がしたのでつくってみた。 [#r6b98243]

 class Lazy[A](thunk : () => A) {
   lazy val body = thunk()
 }
  
 object Lazy {
   def lazy_[A](x : => A) = new Lazy(() => x)
   def force[A](x : Lazy[A]) = x.body
 }

** 使用例: [#o05d7781]

  import Lazy._
  def calc() = {
    println("calc")
    1+2+3
  }
  val x = lazy_(calc())
  println("start")
  println(force(x))
  println(force(x))
  println(force(x))

実行結果:
 start
 calc
 6
 6
 6

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS