通过Curry-Howard 同构, ScalaUnit
对应于逻辑真和Nothing
逻辑假。任何事物都暗示了逻辑真这一事实由一个简单的函数证明,该函数只是丢弃了参数:
def toUnit[A](x: A): Unit = { }
是否有一个函数可以证明逻辑 false 意味着什么,即 type 的函数Nothing => A
?还是有一种惯用的方法来构建一个?
一个人总是可以做类似的事情
def fromNothing[A](n: Nothing): A = throw new RuntimeException();
但这很丑 - 它没有使用Nothing
没有价值的事实。应该有一种方法可以毫无例外地做到这一点。