Skip to content

Instantly share code, notes, and snippets.

@shigemk2
Created July 20, 2015 05:22
Show Gist options
  • Select an option

  • Save shigemk2/dba8a80dc4b6dc8e9ba5 to your computer and use it in GitHub Desktop.

Select an option

Save shigemk2/dba8a80dc4b6dc8e9ba5 to your computer and use it in GitHub Desktop.
def pn(str: String): Int = pnPrime(str.split(" ").toList)._1
// 一意型パターン
def pnPrime(src: List[String]): (Int, List[String]) = src match {
case "+"::xs => {
val (a, n1) = pnPrime(xs)
val (b, n2) = pnPrime(n1)
(a.toInt + b, n2)
}
case _ => (src.head.toInt, src.tail)
}
println(pn("1"))
println(pn("+ 1 2"))
println(pn("+ 1 + 2 3"))
println(pn("+ + 1 2 3"))
println(pn("+ + 1 2 + 3 4"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment