Personal tools

Talk:Physical equality

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 +
Should the code not be
 +
<haskell>
 +
x === y = unsafePerformIO $ do
 +
    px <- x `seq` newStablePtr x
 +
    py <- y `seq` newStablePtr y
 +
    let ret = px == py
 +
    freeStablePtr px
 +
    freeStablePtr py
 +
    return ret
 +
</haskell>
 +
?
 +
 +
--David M, 20 Dec 2010
 +
 
GHC already has physical equality testing via GHC.Exts.reallyUnsafePtrEquality#
 
GHC already has physical equality testing via GHC.Exts.reallyUnsafePtrEquality#
  

Revision as of 02:03, 20 December 2010

Should the code not be

x === y = unsafePerformIO $ do
    px <- x `seq` newStablePtr x
    py <- y `seq` newStablePtr y
    let ret = px == py
    freeStablePtr px
    freeStablePtr py
    return ret

?

--David M, 20 Dec 2010

GHC already has physical equality testing via GHC.Exts.reallyUnsafePtrEquality#

--Lemmih 15:00, 29 July 2006 (UTC)


No need to talk about OCaml's nan: Prelude> 0/0 NaN Prelude> 0/0 == 0/0 False