Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open System
- let rec readAge () : int =
- printf "Age: "
- match Int32.TryParse(Console.ReadLine()) with
- | true, age when age > 0 -> age
- | _ ->
- printfn "Cannot read the age, please retry.."
- readAge ()
- let readNextPerson () : (string * int) option =
- printf "Name (empty to stop inputs): "
- let name = Console.ReadLine().Trim()
- if name = "" then None
- else Some (name, readAge())
- let rec readPersons () : (string * int) list =
- match readNextPerson() with
- | Some p -> p :: readPersons()
- | None -> []
- let printPerson (name, age) =
- printfn "name: %s (%s)" name (if age >= 20 then "no longer a teenager" elif age >= 13 then "teenager" else "child")
- [<EntryPoint>]
- let main argv =
- for p in readPersons() do
- printPerson p
- Console.ReadKey() |> ignore
- 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement