Advertisement
Guest User

Untitled

a guest
May 20th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (*------------------------------------------------------------*)
  2.  
  3. fun foldl f d ( nil     ) = d
  4.   | foldl f d ( x :: xs ) = foldl f ( f d x ) xs
  5.  
  6. fun filter p = foldl ( fn a => fn c => if p c then c :: a else a ) nil
  7.  
  8. fun sort ( nil     ) = nil
  9.   | sort ( x :: xs ) =
  10.       let
  11.           val left  = filter ( fn v => v <  x ) xs
  12.           val right = filter ( fn v => v >= x ) xs
  13.       in
  14.           sort left @ x :: sort right
  15.       end
  16.  
  17. (*------------------------------------------------------------*)
  18.  
  19. fun showList ( nil     ) = "\n"
  20.   | showList ( x :: xs ) = Int.toString x ^ " " ^  showList xs
  21.  
  22. val printList = print o showList
  23.  
  24. (*------------------------------------------------------------*)
  25.  
  26. val arr = [ 3, 2, 3, 7, 2, 1, 0, 7 ]
  27.  
  28. val _ =
  29.   let
  30.       val srt = sort arr
  31.   in
  32.       ( printList arr
  33.       ; printList srt
  34.       )
  35.   end
  36.  
  37. (*------------------------------------------------------------*)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement