Changeset 6088

Show
Ignore:
Timestamp:
02/03/08 08:20:22 (5 years ago)
Author:
kmizu
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/scala/sandbox/src/jp/gr/java_conf/mizu/util/Lazy.scala

    r5952 r6088  
    11package jp.gr.java_conf.mizu.util 
    22object Lazy { 
     3  type LazyArray[T] = Array[Lazy[T]] 
    34  class Lazy[T](v : => T) { 
    4     lazy val value :T = v 
     5    private lazy val value :T = v 
     6    def ref :T = value 
    57  } 
    68 
    7   implicit def ext2Lazy[T](v : => T) :Lazy[T] = new Lazy[T](v) 
     9  def lazyArray[T](elements :Seq[Lazy[T]]) :LazyArray[T] = elements.toArray 
    810 
    9   implicit def extfLazy[T](thunk : Lazy[T]) :T = thunk.value 
     11  implicit def delay[T](v : => T) :Lazy[T] = new Lazy[T](v) 
    1012 
    1113  def main(args: Array[String]) { 
     
    1315    def eval2(n : => Unit) :Unit = { n; n } 
    1416    def eval0Lazy(n :Lazy[Unit]) :Unit = () 
    15     def eval2Lazy(n :Lazy[Unit]) :Unit = { n.value; n.value } 
     17    def eval2Lazy(n :Lazy[Unit]) :Unit = { n.ref; n.ref } 
    1618    println("--eval0--") 
    1719    eval0(println("Hello"))