Advertisement
Guest User

Untitled

a guest
Jan 10th, 2014
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.97 KB | None | 0 0
  1. module Stack =
  2.     let pop = function
  3.     | x::xs -> Some(x), xs
  4.     | [] -> None, []
  5.  
  6.     let push l x = x::l
  7.  
  8.     let head list =
  9.         match List.length l with
  10.         | 0 -> None
  11.         | _ -> Some(l.[0])
  12.  
  13.     let size l = List.length l
  14.  
  15.  
  16. module Queue =
  17.     let pop = function
  18.     | x::xs -> Some(x), xs
  19.     | [] -> None, []
  20.  
  21.     let push l x = l @ [x]
  22.  
  23.     let head list =
  24.         match List.length l with
  25.         | 0 -> None
  26.         | _ -> Some(l.[0])
  27.  
  28.     let size l = List.length l
  29.  
  30.    
  31. module Program =
  32.     let rec addall st = function
  33.         | 10 -> st
  34.         | x -> addall (Stack.push st x) (x + 1)
  35.  
  36.     let rec printall st =
  37.         let a, nst = Stack.pop st
  38.         match a with
  39.         | None -> None
  40.         | Some(x) ->
  41.             printf "%d " x
  42.             printall nst
  43.  
  44.     [<EntryPoint>]
  45.     let main argv =
  46.        
  47.  
  48.         let st = addall [] 0
  49.         printall st
  50.         0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement