我对 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
并没有什么特别之处.它只是一个特殊值——您可以用无限循环、崩溃或段错误来表示它。编写它的一种方法是崩溃:
undefined :: a
undefined | False = undefined
或循环:
undefined = undefined
这是一个特殊的值,可以是任何类型的元素。
由于 Haskell 是惰性的,您仍然可以在计算中使用这些值。例如。
> length [undefined, undefined]
2
但除此之外,这只是多态性和非严格性的自然结果。
关于haskell - 'undefined' 如何在 Haskell 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16748416/