Advertisement
Guest User

Untitled

a guest
Aug 31st, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. module Program =
  2. let rec Main args =
  3. let numbers : obj[] =
  4. [| 0b1; 0b10; ([| 0b100; 0b1000 |] : obj[]); // binary literals
  5. 0b10000; 0b100000 |] // digit separators: not supported
  6. let sum, count = Tally(numbers) // deconstruction
  7. printfn "Sum: %d, Count: %d" sum count
  8.  
  9. and Tally (values : obj[]) = // tuple types
  10. let mutable r = 0, 0 // tuple literals
  11. let Add s c = r <- fst r + s, snd r + c // local functions
  12. for v in values do
  13. match v with
  14. | :? int as i -> // type patterns
  15. Add i 1
  16. | :? (obj[]) as a when a.Length > 0 -> // case conditions
  17. let t = Tally a
  18. Add (fst t) (snd t)
  19. | _ ->
  20. assert false
  21. r
  22.  
  23. Main ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement