2016-10-12 7 views
2

私はScalaを初めて使いました。私は、どの述語が正しいのか、正しい方法を理解しようとしています。私がオンラインで見つけた情報は私にはあまり明確ではないし、述語に関する以前の知識を前提としている。誰かが自分のことを説明し、Scalaでそれらを使用する方法のいくつかの例を示すことができますか?Scala Predicates

答えて

5

述部は、Booleanを返す関数です。

たとえば、Integerが偶数であるかどうかを確認するには、関数isEvenを定義できます。

scala> def isEven(i: Int) = i % 2 == 0 
isEven: (i: Int)Boolean 

これは期待どおりの動作です。

scala> isEven(2) 
res1: Boolean = true 

だから、あなたは、ブール値を返す関数を取るfilterのような関数にこれを渡すことができます。これの型シグネチャはp: (A) ⇒ Boolean)です。ここで、pは述語の略です。

scala> List(1,2,3,4,5,6,7,8,9,10).filter(isEven) 
res2: List[Int] = List(2, 4, 6, 8, 10) 

参考になるものはScala Schoolを参照してください。