我对 Haskell 中的“未定义”值很好奇。它很有趣,因为你可以把它放在任何地方,Haskell 会很高兴。以下都是a-ok
[1.0, 2.0, 3.0 , undefined] ::[Float]
[1, 2 ,3 undefined, 102312] :: [Int]
("CATS!", undefined) :: (String, String)
....and many more
未定义在幕后是如何工作的?是什么使得拥有各种数据类型的数据成为可能?我是否可以定义一个可以放在任何地方的值,或者这是一些特殊情况?
没什么特别的undefined
。它只是一个特殊值——您可以用无限循环、崩溃或段错误来表示它。一种写法是崩溃:
undefined :: a
undefined | False = undefined
或者一个循环:
undefined = undefined
它是一个特殊值,可以是任何类型的元素。
由于 Haskell 是惰性的,你仍然可以在计算中使用这些值。例如。
> length [undefined, undefined]
2
但除此之外,这只是多态性和非严格性的自然结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)