Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Stack =
- let pop = function
- | x::xs -> Some(x), xs
- | [] -> None, []
- let push l x = x::l
- let head list =
- match List.length l with
- | 0 -> None
- | _ -> Some(l.[0])
- let size l = List.length l
- module Queue =
- let pop = function
- | x::xs -> Some(x), xs
- | [] -> None, []
- let push l x = l @ [x]
- let head list =
- match List.length l with
- | 0 -> None
- | _ -> Some(l.[0])
- let size l = List.length l
- module Program =
- let rec addall st = function
- | 10 -> st
- | x -> addall (Stack.push st x) (x + 1)
- let rec printall st =
- let a, nst = Stack.pop st
- match a with
- | None -> None
- | Some(x) ->
- printf "%d " x
- printall nst
- [<EntryPoint>]
- let main argv =
- let st = addall [] 0
- printall st
- 0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement