( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

寝てる場合じゃねぇ!(Scala)

寝てる場合じゃねぇ! - プログラマーの脳みそ

Scalaだとコンパイラ騙さなくても言語がサポートする機能でふつーにできるし。

object NoSleep extends App {

  trait Sleepy[A] { def sleep(n:Long):Unit }
  implicit val hoge = new Sleepy[Nothing]{
    def sleep(n:Long) = println("寝てる場合じゃねぇ!")
  }

  def sleep[A:Sleepy] = try {
    implicitly[Sleepy[A]].sleep(1000)
  } catch {
    case ex:InterruptedException => ex.printStackTrace()
  }

  sleep
}