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