parallel-df-program(B;F;dfps) ==
  Y 
  (parallel-df-program,F,dfps.
    if 2 <z ||dfps||
      then parallel-df-program 
           (g.(F 
                (k.if (k = 0) then fst(bag-separate(g 0))
                    if (k = 1) then snd(bag-separate(g 0))
                    else g (k - 1)
                    fi ))) 
           [parallel-df-prog2(...;x,y.bag-merge(x;y);hd(dfps);hd(tl(dfps))) / 
            tl(tl(dfps))]
    if (||dfps|| = 2)
      then parallel-df-prog2(B;x,y.(F (k.if (k = 0) then x else y fi ));
              hd(dfps);hd(tl(dfps)))
    else parallel-df-prog1(B;x.(F (k.x));hd(dfps))
    fi ) 
  F 
  dfps



Definitions occuring in Statement :  parallel-df-prog2: parallel-df-prog2(B;G;dfp1;dfp2) parallel-df-prog1: parallel-df-prog1(B;G;dfp) df-program-type: df-program-type(dfp) tl: tl(l) hd: hd(l) length: ||as|| eq_int: (i = j) lt_int: i <z j ifthenelse: if b then t else f fi  pi1: fst(t) pi2: snd(t) ycomb: Y apply: f a lambda: x.A[x] union: left + right cons: [car / cdr] subtract: n - m natural_number: $n bag-separate: bag-separate(bs) bag-merge: bag-merge(as;bs)
Definitions :  ycomb: Y lt_int: i <z j pi1: fst(t) pi2: snd(t) bag-separate: bag-separate(bs) subtract: n - m cons: [car / cdr] union: left + right df-program-type: df-program-type(dfp) bag-merge: bag-merge(as;bs) length: ||as|| parallel-df-prog2: parallel-df-prog2(B;G;dfp1;dfp2) ifthenelse: if b then t else f fi  eq_int: (i = j) natural_number: $n tl: tl(l) parallel-df-prog1: parallel-df-prog1(B;G;dfp) apply: f a lambda: x.A[x] hd: hd(l)
FDL editor aliases :  parallel-df-program

parallel-df-program(B;F;dfps)  ==
    Y 
    (\mlambda{}parallel-df-program,F,dfps.
        if  2  <z  ||dfps||
            then  parallel-df-program 
                      (\mlambda{}g.(F 
                                (\mlambda{}k.if  (k  =\msubz{}  0)  then  fst(bag-separate(g  0))
                                        if  (k  =\msubz{}  1)  then  snd(bag-separate(g  0))
                                        else  g  (k  -  1)
                                        fi  ))) 
                      [parallel-df-prog2(df-program-type(hd(dfps))  +  df-program-type(hd(tl(dfps)));\mlambda{}x,y.
                                                                                                                                                                                  ...;
                              hd(dfps);hd(tl(dfps)))  / 
                        tl(tl(dfps))]
        if  (||dfps||  =\msubz{}  2)
            then  parallel-df-prog2(B;\mlambda{}x,y.(F  (\mlambda{}k.if  (k  =\msubz{}  0)  then  x  else  y  fi  ));hd(dfps);hd(tl(dfps)))
        else  parallel-df-prog1(B;\mlambda{}x.(F  (\mlambda{}k.x));hd(dfps))
        fi  ) 
    F 
    dfps


Date html generated: 2011_08_16-AM-09_44_06
Last ObjectModification: 2011_03_16-PM-10_07_54

Home Index