Nuprl Definition : bind-df-next3

bind-df-next3(F;dfpY;s;m) ==
  let s1,L = s 
  in let s',b = if isl(s1) then F outl(s1) m else <s1, {}fi  
     in let L' = L + bag-map(a.<a, inl df-program-state(dfpY a) >;b) in
         let nxtouts = bind-nextouts1(L';dfpY;m) in
         let spawned = bag-map(p.(fst(p));nxtouts) in
         let out = pnxtouts.snd(p) in
         <inl <s', spawned, out>



Definitions occuring in Statement :  bind-nextouts1: bind-nextouts1(L;dfpY;m) df-program-state: df-program-state(dfp) outl: outl(x) isl: isl(x) ifthenelse: if b then t else f fi  let: let pi1: fst(t) pi2: snd(t) apply: f a lambda: x.A[x] spread: spread def pair: <a, b> inl: inl x  bag-combine: xbs.f[x] bag-append: as + bs bag-map: bag-map(f;bs) empty-bag: {}
FDL editor aliases :  bind-df-next3

bind-df-next3(F;dfpY;s;m)  ==
    let  s1,L  =  s 
    in  let  s',b  =  if  isl(s1)  then  F  outl(s1)  m  else  <s1,  \{\}>  fi   
          in  let  L'  =  L  +  bag-map(\mlambda{}a.<a,  inl  df-program-state(dfpY  a)  >b)  in
                  let  nxtouts  =  bind-nextouts1(L';dfpY;m)  in
                  let  spawned  =  bag-map(\mlambda{}p.(fst(p));nxtouts)  in
                  let  out  =  \mcup{}p\mmember{}nxtouts.snd(p)  in
                  <inl  <s',  spawned>  ,  out>


Date html generated: 2012_01_23-PM-12_01_58
Last ObjectModification: 2011_12_17-PM-12_12_46

Home Index