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