once-prog(dfp) ==
  let A,S,init,nxt = dfp
  in <A
     , S
     , init
     , s,m.
        evalall(let s',xout = nxt s m 
                in <case s'
                    of inl(s) =>
                     if bag-null(xout) then inl s  else inr   fi 
                     | inr(z) =>
                     inr  
                   , xout
                   >)>  



Definitions occuring in Statement :  ifthenelse: if b then t else f fi  it: spreadn: spread4 apply: f a lambda: x.A[x] spread: spread def pair: <a, b> decide: case b of inl(x) =s[x] | inr(y) =t[y] inr: inr x  inl: inl x  bag-null: bag-null(bs) evalall: evalall(t)
Definitions :  spreadn: spread4 lambda: x.A[x] evalall: evalall(t) spread: spread def apply: f a pair: <a, b> decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  bag-null: bag-null(bs) inl: inl x  inr: inr x  it:
FDL editor aliases :  once-prog

once-prog(dfp)  ==
    let  A,S,init,nxt  =  dfp
    in  <A
          ,  S
          ,  init
          ,  \mlambda{}s,m.
                evalall(let  s',xout  =  nxt  s  m 
                                in  <case  s'
                                        of  inl(s)  =>
                                          if  bag-null(xout)  then  inl  s    else  inr  \mcdot{}    fi 
                                          |  inr(z)  =>
                                          inr  \mcdot{} 
                                      ,  xout
                                      >)>   


Date html generated: 2011_08_16-PM-06_17_08
Last ObjectModification: 2011_06_19-PM-07_31_33

Home Index