2

Curry-Howard 同形により、 ScalaUnitは論理 true とNothing論理 false に対応します。論理的 true が何によっても暗示されるという事実は、引数を破棄するだけの単純な関数によって証明されます。

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 に答える