Nuprl Definition : Comm-next-continue
Comm-next-continue(l_comm;l_choose;piD;cSt) ==
  let st = Comm-st(cSt) in
   let q = Comm-q(cSt) in
   let waiting = Comm-waiting(cSt) in
   let count = Comm-count(cSt) in
   if waiting
   then <cSt, make-lg([])>
   else let p = Comm-process-q(q;l_comm;st) in
         let q' = fst(p) in
         let st' = fst(snd(p)) in
         let loc = fst(snd(snd(p))) in
         let mList = snd(snd(snd(p))) in
         if null(q')
         then <<st', [], l_comm, ff, count>, make-lg([])>
         else let msgs2choose = map(λx.<l_choose, mk-tagged("msg";pDVrequest(x;count))>mList) in
                  <<st', q', loc, tt, count + 1>, make-lg([<l_comm, mk-tagged("msg";pDVcontinue())>] @ msgs2choose)>
         fi 
   fi 
Definitions occuring in Statement : 
Comm-process-q: Comm-process-q(q;id;st)
, 
Comm-count: Comm-count(cSt)
, 
Comm-waiting: Comm-waiting(cSt)
, 
Comm-q: Comm-q(cSt)
, 
Comm-st: Comm-st(cSt)
, 
pDVrequest: pDVrequest(rndv2;counter)
, 
pDVcontinue: pDVcontinue()
, 
make-lg: make-lg(L)
, 
map: map(f;as)
, 
append: as @ bs
, 
null: null(as)
, 
cons: [a / b]
, 
nil: []
, 
ifthenelse: if b then t else f fi 
, 
bfalse: ff
, 
btrue: tt
, 
let: let, 
pi1: fst(t)
, 
pi2: snd(t)
, 
lambda: λx.A[x]
, 
pair: <a, b>
, 
add: n + m
, 
natural_number: $n
, 
token: "$token"
, 
mk-tagged: mk-tagged(tg;x)
FDL editor aliases : 
Comm-next-continue
Latex:
Comm-next-continue(l$_{comm}$;l$_{choose}$;piD;cSt)  ==
    let  st  =  Comm-st(cSt)  in
      let  q  =  Comm-q(cSt)  in
      let  waiting  =  Comm-waiting(cSt)  in
      let  count  =  Comm-count(cSt)  in
      if  waiting
      then  <cSt,  make-lg([])>
      else  let  p  =  Comm-process-q(q;l$_{comm}$;st)  in
                  let  q'  =  fst(p)  in
                  let  st'  =  fst(snd(p))  in
                  let  loc  =  fst(snd(snd(p)))  in
                  let  mList  =  snd(snd(snd(p)))  in
                  if  null(q')
                  then  <<st',  [],  l$_{comm}$,  ff,  count>,  make-lg([])>
                  else  let  msgs2choose  =  map(\mlambda{}x.<l$_{choose}$,  mk-tagged("msg";pDVrequest\000C(x;count))>mList)  in
                                    <<st',  q',  loc,  tt,  count  +  1>
                                    ,  make-lg([<l$_{comm}$,  mk-tagged("msg";pDVcontinue())>]  @  msg\000Cs2choose)
                                    >
                  fi 
      fi 
Date html generated:
2015_07_23-AM-11_58_52
Last ObjectModification:
2012_08_30-PM-01_49_35
Home
Index