[e-cvs] cvs commit: e/doc/elib/equality after-both.html
markm@eros.cs.jhu.edu
markm@eros.cs.jhu.edu
Wed, 7 Nov 2001 12:52:22 -0500
markm 01/11/07 12:52:22
Modified: doc/elib/equality after-both.html
Log:
Improvements from Ken
Revision Changes Path
1.9 +32 -33 e/doc/elib/equality/after-both.html
Index: after-both.html
===================================================================
RCS file: /cvs/e/doc/elib/equality/after-both.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- after-both.html 2001/11/07 17:42:16 1.8
+++ after-both.html 2001/11/07 17:52:22 1.9
@@ -59,44 +59,43 @@
sameness): </p>
<p>
<blockquote>
- <pre> def join(a, b) :any {
- def [result, resolver] := PromiseMaker()
- def hasLeft := false
- def left := null
- def hasRight := false
- def right := null
+ <pre>def join(a, b) :any {
+ def [result, resolver] := PromiseMaker()
+ var hasLeft := false
+ var left := null
+ var hasRight := false
+ var right := null
- def reduce() :void {
- def done(answer) :void {
- resolver resolve(answer)
- reduce := def noop() :void {}
- }
- if (Ref isBroken(left)) {
+ var reduce() :void {
+ def done(answer) :void {
+ resolver resolve(answer)
+ reduce := def noop() :void {}
+ }
+ if (Ref isBroken(left)) {
+ done(left)
+ } else if (Ref isBroken(right)) {
+ done(right)
+ } else if (hasLeft && hasRight) {
+ <font face="Times New Roman, Times, serif"># Eventual equality bottoms out in immediate equality</font>
+ if (left == right) {
done(left)
- } else if (Ref isBroken(right)) {
- done(right)
- } else if (hasLeft && hasRight) {
- # Eventual equality bottoms out in immediate equality
- if (left == right) {
- done(left)
- } else {
- done(throw <- ("No join found"))
- }
+ } else {
+ done(throw <- ("No join found"))
}
}
-
- Ref whenResolved(a, def reduceA(aa) :void {
- hasLeft := true
- left := aa
- reduce()
- })
- Ref whenResolved(b, def reduceB(bb) :void {
- hasRight := true
- right := bb
- reduce()
- })
- result
}
+
+ Ref whenResolved(a, def reduceA(aa) :void {
+ hasLeft := true
+ left := aa
+ reduce()
+ })
+ Ref whenResolved(b, def reduceB(bb) :void {
+ hasRight := true
+ right := bb
+ reduce()
+ })
+ result
}
</pre>
</blockquote>