Pet*_*lák 2 scala curry-howard unit-type
通过Curry-Howard同构 Scala Unit对应逻辑真和Nothing逻辑假.逻辑真实被任何东西暗示的事实由一个简单的函数见证,该函数只是抛弃了这个论点:
def toUnit[A](x: A): Unit = { }
Run Code Online (Sandbox Code Playgroud)
是否有一个函数可以证明逻辑错误意味着什么,这是类型的函数Nothing => A?或者是否有一种惯用的方法来构建一个?
人们可以总是这样做
def fromNothing[A](n: Nothing): A = throw new RuntimeException();
Run Code Online (Sandbox Code Playgroud)
但这只是丑陋 - 它没有使用Nothing没有价值的事实.应该有一种方法如何做到没有例外.
你可以这样做
def emptyFunction[A]: Nothing => A = {n => n}
Run Code Online (Sandbox Code Playgroud)
要么
def emptyFunction[A](n: Nothing): A = n
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           204 次  |  
        
|   最近记录:  |