consensus-rcvs-to-consensus-events(f;t;v0;L) ==
  list_accum(p,r.let X,Y = p in
                   let b,i,as,vs,v = list_accum(s,r.consensus-accum-num((2 * t)
                                                    + 1;f;s;r);
                                                <ff, 0, [], [], v0>
                                                Y @ [r]) in
                   <X
                    @ if rcv-vote?(r)
                      then let a,i,v = rcvd-vote(r) in 
                           [consensus-message(a;i + 1;inl <i, v> )]
                      else []
                      fi 
                    @ if b
                      then if null(as)
                           then [Archive(v); NextInning]
                           else map(
n.NextInning;upto(i - 1 
                                    - ||filter(
x.is-inning-event(x);X)||))
                                @ [Archive(v); NextInning]
                           fi 
                      else []
                      fi 
                  , Y @ [r]
                  >
             <[], []>
             L)
Definitions : 
spread: spread def, 
spreadn: let a,b,c,d,e = u in v[a; b; c; d; e], 
list_accum: list_accum(x,a.f[x; a];y;l), 
consensus-accum-num: consensus-accum-num(num;f;s;r), 
multiply: n * m, 
bfalse: ff, 
rcv-vote?: rcv-vote?(x), 
spreadn: spread3, 
rcvd-vote: rcvd-vote(x), 
consensus-message: consensus-message(b;i;z), 
add: n + m, 
inl: inl x , 
ifthenelse: if b then t else f fi , 
null: null(as), 
map: map(f;as), 
upto: upto(n), 
subtract: n - m, 
natural_number: $n, 
length: ||as||, 
filter: filter(P;l), 
lambda:
x.A[x], 
is-inning-event: is-inning-event(x), 
archive-event: Archive(v), 
inning-event: NextInning, 
append: as @ bs, 
cons: [car / cdr], 
pair: <a, b>, 
nil: []
FDL editor aliases : 
consensus-rcvs-to-consensus-events
consensus-rcvs-to-consensus-events(f;t;v0;L)  ==
    list\_accum(p,r.let  X,Y  =  p  in
                                      let  b,i,as,vs,v  =  list\_accum(s,r.consensus-accum-num((2  *  t)  +  1;f;s;r);
                                                                                                <ff,  0,  [],  [],  v0>
                                                                                                Y  @  [r])  in
                                      <X
                                        @  if  rcv-vote?(r)
                                            then  let  a,i,v  =  rcvd-vote(r)  in 
                                                      [consensus-message(a;i  +  1;inl  <i,  v>  )]
                                            else  []
                                            fi 
                                        @  if  b
                                            then  if  null(as)
                                                      then  [Archive(v);  NextInning]
                                                      else  map(\mlambda{}n.NextInning;upto(i  -  1  -  ||filter(\mlambda{}x.is-inning-event(x);X)||))
                                                                @  [Archive(v);  NextInning]
                                                      fi 
                                            else  []
                                            fi 
                                    ,  Y  @  [r]
                                    >
                          <[],  []>
                          L)
Date html generated:
2010_08_27-AM-01_03_00
Last ObjectModification:
2009_12_23-PM-03_35_01
Home
Index