Advertisement
Guest User

Untitled

a guest
Oct 9th, 2015
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. open System
  2.  
  3. type PersonInfo = string * int
  4.  
  5. let isValidAge age = age > 0 && age < 120
  6.  
  7. let rec readAge name =
  8. printf "Enter age of %s: " name
  9. let success, keyIn = Int32.TryParse(Console.ReadLine())
  10. if success && isValidAge keyIn
  11. then keyIn
  12. else
  13. printfn "Invalid age!"
  14. readAge name
  15.  
  16. let rec readPeople (people : PersonInfo[]) : PersonInfo[] =
  17. printf "Enter Person name (enter . for quit): "
  18. let name = Console.ReadLine()
  19. if name = "." || String.IsNullOrEmpty(name)
  20. then people
  21. else
  22. let age = readAge name
  23. Array.append (readPeople people) [|(name, age)|]
  24.  
  25. let printPerson person =
  26. let name, age = person
  27. if age >= 20
  28. then printfn "%s is %i years old and not longer a teenager." name age
  29. elif age > 13 && age < 20
  30. then printfn "%s is %i years old and therefore a teenager" name age
  31. elif age = 1
  32. then printfn "%s is %i year old and therefore a child" name age
  33. else printfn "%s is %i years old and therefore a child" name age
  34.  
  35. [<EntryPoint>]
  36. let main argv =
  37. readPeople [||]
  38. |> Array.rev
  39. |> Seq.iter printPerson
  40. 0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement