I am implementing a simple program: A user is asked for his age until the answer is right.
def defaultval: String = "" def validator(answer: String): Boolean = (answer matches """\d+""") && answer.toInt > 0 def modifier(answer: String): Int = answer.toInt def ask(question: String): String = if (defaultval equals "") "10" else defaultval def validate(question: String, error: String="Error. Invalid answer.") = while (!validator(ask)) print("error") println(ask("What is your age? "))
Note that I tried my code on scalafiddle, therefore it has no object Main and readLine in ask. My question basically is: Is there a beautiful one-liner for
validate? Something like "While the answer is not valid, print an error and finally return the correct (modified) answer …
Any ideas? I am pretty sure that Scala has a beautiful solution to that. It always has beautiful solutions ;-)