Question

Through Curry-Howard isomorphism Scala's Unit corresponds to logical true and Nothing to logical false. The fact that logical true is implied by anything is witnessed by a simple function that just discards the argument:

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

Is there a function that witnesses the fact that logical false implies anything, that is a function of type Nothing => A? Or is there an idiomatic way how to construct one?

One can always do something like

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

but this is just ugly - it doesn't use the fact that Nothing has no values. There should be a way how to do it without exceptions.

Was it helpful?

Solution

You may do that

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

or

def emptyFunction[A](n: Nothing): A = n
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top