fork download
  1. object Main extends App {
  2. object Email {
  3. def apply(user: String, host: String) = user + "@" + host
  4. def unapply(input: String): Option[(String, String)] = {
  5. input.indexOf("@") match {
  6. case x if (x > 0) => Some((input.substring(0, x), input.substring(x + 1)))
  7. case _ => None
  8. }
  9. }
  10. }
  11.  
  12. "lispgovno@govnokod.ru" match {
  13. case Email(user, host) => println("See user <" + user + "> at domain <" + host + ">")
  14. case _ => println("Well...")
  15. }
  16. "lol" match {
  17. case Email(user, host) => println("Wow... strange email")
  18. case _ => println("OK, <lol> is not an email")
  19. }
  20. }
Success #stdin #stdout 0.29s 247552KB
stdin
Standard input is empty
stdout
See user <lispgovno> at domain <govnokod.ru>
OK, <lol> is not an email