Previous Contents Next

Module Insertion

A functional implementation of insertion sort. The sorting proceeds in reverse direction of the list.


   module InsertionsortFun (EORDERED) : (SORT with type elem = E.t) =
     struct
       type elem = E.t

       let rec sort (lelem list) =
         let rec i_one (xelem) (l'elem list) = (* insert x at the right place *)
           match l' with
             [ ] ® [x]
           | y::l'' ® 
           if (x £ ythen x::l' else y:: (i_one x l'')
         in match l with
           [ ] ® [ ]
         | x:: l' ® i_one x (sort l')

     end
January 31, 2002
Previous Contents Next