Listのmember
再帰のべんきょ
//Scala def member[T](item: T, lst: List[T]): List[T]={ if (lst.isEmpty) Nil else { if (item == lst.head) lst else member(item, lst.tail) } } println(member("Scala",List("Ruby","Perl","Python","Scala","Groovy","Java"))) //=> List("Scala","Groovy","Java")
パターンマッチで。
//Scala def member[T](item: T, lst: List[T]): List[T]= lst match{ case List() => Nil case head :: tail => if (item == head) lst else member(item, tail) } println(member("Scala",List("Ruby","Perl","Python","Scala","Groovy","Java"))) //=> List("Scala","Groovy","Java")