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
。例外なくそれを行う方法があるはずです。