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