Haskell中是否存在指针质量的概念?==要求事物得到Eq,并且我有一些东西包含(值 - > IO值),而且 - >和IO都没有得到Eq.
编辑:我创建了这另一种语言翻译确实有指针相等,所以我想,同时仍然能够使用Haskell函数模型关闭模型此行为.
编辑:示例:我想要一个special能够执行此操作的函数:
> let x a = a * 2
> let y = x
> special x y
True
> let z a = a * 2
> special x z
False
Run Code Online (Sandbox Code Playgroud) 在 Haskell 中,相等测试通常是使用类==来执行的Eq。该函数(在大多数情况下)是在纯 Haskell 术语下定义的,因此它遵循将其递归应用于大数据结构的所有后果。因此,看似微不足道的比较可能会花费大量时间。来吧,这应该是即时的(关于懒惰的提醒):
ghci> let x = [1..100000000] in x == x
True
(2.81 secs, 14,400,130,800 bytes)
Run Code Online (Sandbox Code Playgroud)
为什么 Haskell 在这里不使用引用比较?如果我真的愿意的话,Haskell 是否允许我这样做?