2

通过Curry-Howard 同构, ScalaUnit对应于逻辑真和Nothing逻辑假。任何事物都暗示了逻辑真这一事实由一个简单的函数证明,该函数只是丢弃了参数:

def toUnit[A](x: A): Unit = { }

是否有一个函数可以证明逻辑 false 意味着什么,即 type 的函数Nothing => A?还是有一种惯用的方法来构建一个?

一个人总是可以做类似的事情

def fromNothing[A](n: Nothing): A = throw new RuntimeException();

但这很丑 - 它没有使用Nothing没有价值的事实。应该有一种方法可以毫无例外地做到这一点。

4

1 回答 1

8

你可以这样做

def emptyFunction[A]: Nothing => A = {n => n}

或者

def emptyFunction[A](n: Nothing): A = n
于 2012-11-24T10:07:09.923 回答