tutorial software renault fungicida examples constructora blanquerna scala

software - Scala por ejemplo?



scala tutorial (3)

El forall de Scala es también una gran herramienta para hacer algo como aplicar lógica y una lista de valores booleanos con los primeros :

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

Probé la búsqueda de Google y no pude encontrar un ejemplo decente para todos. ¿Qué hace? ¿Por qué toma una función booleana?

Por favor, indícame una referencia (excepto el Scaladoc).


El método forall toma una función p que devuelve un booleano. La semántica de forall dice: return true si para cada x en la colección, p(x) es verdadero.

Asi que:

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

significa: true si 1, 2 y 3 son menos de 3; de lo contrario, es false . En este caso, se evaluará como false ya que no es el caso si todos los elementos son menores que 3: 3 no es menor que 3.

Existe un método similar que devuelve true si hay al menos un elemento x en la colección, de modo que p(x) es verdadero.

Asi que:

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

significa: true si al menos uno de 1, 2 y 3 es menor que 3, de lo contrario es false . En este caso, se evaluará como true ya que es el caso de que algún elemento sea menor que 3: por ejemplo, 1 es menor que 3.


Un ejemplo rápido de cómo puedes jugar con esta función usando un script de Scala .

crea un archivo myScript.scala con

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

y llámalo con

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