Scala forall example?

I tried Google search and could not find a decent forall example. What does it do? Why does it take a boolean function?

Please point me to a reference (except the Scaladoc).

3

3 Answers

The forall method takes a function p that returns a Boolean. The semantics of forall says: return true if for every x in the collection, p(x) is true.

So:

List(1,2,3).forall(x => x < 3) 

means: true if 1, 2, and 3 are less than 3, false otherwise. In this case, it will evaluate to false since it is not the case all elements are less than 3: 3 is not less than 3.

There is a similar method exists that returns true if there is at least one element x in the collection such that p(x) is true.

So:

List(1,2,3).exists(x => x < 3) 

means: true if at least one of 1, 2, and 3 is less than 3, false otherwise. In this case, it will evaluate to true since it is the case some element is less than 3: e.g. 1 is less than 3.

2

A quick example of how you can play with this function using a Scala script.

create a myScript.scala file with

println(args.forall(p => (p.equals("a")))) 

and call it with

scala myScript.scala a a a // true scala myScript.scala a b c // false 
1

Scala's forall is also a great tool to do something like applying logical and to a list of boolean values with the early exist:

val evalResults: List[Boolean] = List(evaluateFunc1(), evaluateFunc2(), evaluateFunc3(), evaluateFunc4(), evaluateFunc5()) evalResults.forall(result => result == true) 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like