Person Parser

Experiment

Experiment with the person parsers

*MyParser> parse firstNameParser ""
Nothing
*MyParser> parse firstNameParser "fred"
Nothing
*MyParser> parse firstNameParser "Fred"
Just ("","Fred")
*MyParser> parse surnameParser ""
Nothing
*MyParser> parse surnameParser "fred"
Nothing
*MyParser> parse surnameParser "Fred"
Nothing
*MyParser> parse surnameParser "Frederick"
Just ("","Frederick")
*MyParser> parse genderParser ""
Nothing
*MyParser> parse genderParser "a"
Nothing
*MyParser> parse genderParser "m"
Just ("",'m')
*MyParser> parse genderParser "moo"
Just ("oo",'m')
*MyParser> parse phoneBodyParser ""
Just ("","")
*MyParser> parse phoneBodyParser "123"
Just ("","123")
*MyParser> parse phoneBodyParser "123-456"
Just ("","123-456")
*MyParser> parse phoneBodyParser "123-456.789"
Just ("","123-456.789")
*MyParser> parse phoneParser ""
Nothing
*MyParser> parse phoneParser "#"
Nothing
*MyParser> parse phoneParser "-#"
Nothing
*MyParser> parse phoneParser "12#"
Just ("","12")
*MyParser> parse phoneParser "1-2#"
Just ("","1-2")
*MyParser> parse phoneParser "123-456.789"
Nothing
*MyParser> parse phoneParser "123-456.789#"
Just ("","123-456.789")
*MyParser> parse phoneParser "123-456.789#"
Just ("","123-456.789")
*MyParser> parse phoneParser "123#"
Just ("","123")

So we have parsers for the components of a Person. But we need a parser for a person. How can we get one of those?