[pure-lang-svn] SF.net SVN: pure-lang: [389] pure/trunk/examples/array.pure
Status: Beta
Brought to you by:
agraef
From: <js...@us...> - 2008-07-05 07:33:57
|
Revision: 389 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=389&view=rev Author: jspitz Date: 2008-07-05 00:34:02 -0700 (Sat, 05 Jul 2008) Log Message: ----------- Bugfix of equality and inequality checks (locally hidden == and !=) Modified Paths: -------------- pure/trunk/examples/array.pure Modified: pure/trunk/examples/array.pure =================================================================== --- pure/trunk/examples/array.pure 2008-07-04 23:40:43 UTC (rev 388) +++ pure/trunk/examples/array.pure 2008-07-05 07:34:02 UTC (rev 389) @@ -182,31 +182,33 @@ = update x i (update (x!i) j y); // compare two arrays for equality -Array a == Array b = a == b +Array a == Array b = eq a b with - nil == nil = 1; - nil == tip _ = 0; - nil == bin _ _ _ = 0; - tip _ == nil = 0; - tip x == tip y = x == y; - tip _ == bin _ _ _ = 0; - bin _ _ _ == nil = 0; - bin _ _ _ == tip _ = 0; - bin b1 a1 a2 == bin b2 a3 a4 = b1 == b2 && a1 == a3 && a2 == a4; + eq nil nil = 1; + eq nil (tip _) = 0; + eq nil (bin _ _ _) = 0; + eq (tip _) nil = 0; + eq (tip x) (tip y) = x == y; + eq (tip _) (bin _ _ _) = 0; + eq (bin _ _ _) nil = 0; + eq (bin _ _ _) (tip _) = 0; + eq (bin b1 a1 a2) (bin b2 a3 a4) + = b1 == b2 && eq a1 a3 && eq a2 a4; end; // compare two arrays for inequality -Array a != Array b = a != b +Array a != Array b = neq a b with - nil != nil = 0; - nil != tip _ = 1; - nil != bin _ _ _ = 1; - tip _ != nil = 1; - tip x != tip y = x != y; - tip _ != bin _ _ _ = 1; - bin _ _ _ != nil = 1; - bin _ _ _ != tip _ = 1; - bin b1 a1 a2 != bin b2 a3 a4 = b1 != b2 || a1 != a3 || a2 != a4; + neq nil nil = 0; + neq nil (tip _) = 1; + neq nil (bin _ _ _) = 1; + neq (tip _) nil = 1; + neq (tip x) (tip y) = x != y; + neq (tip _) (bin _ _ _) = 1; + neq (bin _ _ _) nil = 1; + neq (bin _ _ _) (tip _) = 1; + neq (bin b1 a1 a2) (bin b2 a3 a4) + = b1 != b2 || neq a1 a3 || neq a2 a4; end; /* Private functions, don't invoke these directly. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |