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 <cmp x;L)
                            in let L2 ⟵ filter(λz.0 <cmp z;L)
                               in let L3 ⟵ filter(λz.(0 =z cmp 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 then else fi  lt_int: i <j eq_int: (i =z j) apply: a fix: fix(F) lambda: λx.A[x] natural_number: $n
Definitions occuring in definition :  fix: fix(F) ifthenelse: if then else fi  null: null(as) hd: hd(l) lt_int: i <j callbyvalueall: callbyvalueall filter: filter(P;l) lambda: λx.A[x] eq_int: (i =z j) natural_number: $n append: as bs apply: 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