Nuprl Definition : cpsquicksort
cpsquicksort(cmp;L;k) ==
  fix((λcpsquicksort,L,k. if null(L)
                         then k L
                         else let x = hd(L) in
                               let L1 = filter(λz.0 <z cmp z x;L) in
                               let L2 = filter(λz.(0 =z cmp x z);L) in
                               let L3 = filter(λz.0 <z cmp x z;L) in
                               cpsquicksort L1 (λS1.(cpsquicksort L3 (λS3.(k (S1 @ L2 @ S3)))))
                         fi )) 
  L 
  k
Definitions occuring in Statement : 
hd: hd(l)
, 
null: null(as)
, 
filter: filter(P;l)
, 
append: as @ bs
, 
ifthenelse: if b then t else f fi 
, 
lt_int: i <z j
, 
eq_int: (i =z j)
, 
let: let, 
apply: f a
, 
fix: fix(F)
, 
lambda: λx.A[x]
, 
natural_number: $n
Definitions occuring in definition : 
fix: fix(F)
, 
ifthenelse: if b then t else f fi 
, 
null: null(as)
, 
hd: hd(l)
, 
eq_int: (i =z j)
, 
let: let, 
filter: filter(P;l)
, 
lt_int: i <z j
, 
natural_number: $n
, 
lambda: λx.A[x]
, 
apply: f a
, 
append: as @ bs
FDL editor aliases : 
cpsquicksort
Latex:
cpsquicksort(cmp;L;k)  ==
    fix((\mlambda{}cpsquicksort,L,k.  if  null(L)
                                                  then  k  L
                                                  else  let  x  =  hd(L)  in
                                                              let  L1  =  filter(\mlambda{}z.0  <z  cmp  z  x;L)  in
                                                              let  L2  =  filter(\mlambda{}z.(0  =\msubz{}  cmp  x  z);L)  in
                                                              let  L3  =  filter(\mlambda{}z.0  <z  cmp  x  z;L)  in
                                                              cpsquicksort  L1  (\mlambda{}S1.(cpsquicksort  L3  (\mlambda{}S3.(k  (S1  @  L2  @  S3)))))
                                                  fi  )) 
    L 
    k
Date html generated:
2016_05_15-PM-04_28_55
Last ObjectModification:
2015_09_23-AM-07_48_49
Theory : general
Home
Index