Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Program =
- let rec Main args =
- let numbers : obj[] =
- [| 0b1; 0b10; ([| 0b100; 0b1000 |] : obj[]); // binary literals
- 0b10000; 0b100000 |] // digit separators: not supported
- let sum, count = Tally(numbers) // deconstruction
- printfn "Sum: %d, Count: %d" sum count
- and Tally (values : obj[]) = // tuple types
- let mutable r = 0, 0 // tuple literals
- let Add s c = r <- fst r + s, snd r + c // local functions
- for v in values do
- match v with
- | :? int as i -> // type patterns
- Add i 1
- | :? (obj[]) as a when a.Length > 0 -> // case conditions
- let t = Tally a
- Add (fst t) (snd t)
- | _ ->
- assert false
- r
- Main ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement