記録のために、文字列に制限しないことでこれをもう少し一般的にすることができ、引数の順序を切り替えて2つの引数リストを使用することで(私の見解では)もう少し機能的にすることができます。これが私がそれを書く方法です:
def isCorrect[A](allowed: Set[A])(s: Seq[A]) = s forall allowed
これで、このメソッドを関数として扱い、「部分的に適用」して、より特殊な関数を作成できます。
val isDigits = isCorrect("0123456789".toSet) _
val isAs = isCorrect(Set('A')) _
これにより、次のことが可能になります。
scala> isDigits("218903")
res1: Boolean = true
scala> isAs("218903")
res2: Boolean = false
scala> isDigits("AAAAAAA")
res3: Boolean = false
scala> isAs("AAAAAAA")
res4: Boolean = true
または、のようなものを使用することもできますisCorrect("abcdr".toSet)("abracadabra")
。