Los operadores lambda se utilizan para construir el resultado de una matriz. El resultado varía dependiendo del arreglo y del operador utilizado en la expresión. La siguiente tabla contiene los operadores disponibles:


Nombre Operador Sintaxis Resultado
Alguno any array any (var => boolean) boolean
Todo all array all (var => boolean)
Ninguno none array none (var => boolean)
Contador count array count (var => boolean) number
Mapa map array map (var => judgment) array[judgment]
select array select (var => judgment)
Filtro filter array filter (var => boolean) array
where array where (var => boolean)
Primero first array first (var => boolean)

Sintaxis básica

A diferencia de otros operadores, los operadores lambda tienen una sintaxis única que permite obtener datos de una tabla sin la necesidad de utilizar una etiqueta b:loop:


tabla operador (variable => expresión)

El primer operando es una tabla seguido del operador Lambda, luego empieza la expresión lambda conformado por una variable y otra expresión (variable => expresión), la variable puede ser cualquier término y se utilizará para rehacer los datos de la tabla.


Any

El operador any comprueba si al menos uno de los datos de la tabla corresponde al criterio. El resultado será booleano:


<b:eval expr='data:posts any (p => p.title contains "Receta")'/>

La operación anterior devuelve true si en la tabla data:posts al menos uno de los títulos contiene el texto Receta.


All

El operador all comprueba si todos los datos de la tabla corresponden al criterio. El resultado será booleano:


<b:eval expr='data:posts all (p => p.numComments gt 2)'/>

La operación anterior devuelve true si todas las entradas de la tabla data:posts contienen más de 2 comentarios.


None

El operador none comprueba si ninguno de los datos de la tabla corresponden al criterio. El resultado será booleano:


<b:eval expr='data:posts none (p => p.numComments gt 2)'/>

La operación anterior devuelve true si ninguna entrada de la tabla data:posts tiene más de 2 comentarios.


Count

El operador count devuelve el numero de conjuntos de la tabla que corresponden al criterio. El resultado será numérico:


<b:eval expr='data:posts count (p => p.title contains "Review")'/>

La operación anterior devuelve el número de entradas de la tabla data:posts que contienen el texto "Review" en el título. El resultado es numérico.


Map

El operador map crea una nueva tabla a partir de un elemento de la tabla o del resultado de la expresión, que será del mismo tipo que el resultado:


<b:loop values='data:post.labels map (l => l.name)' var='newArray'>
   <data:newArray/>
</b:loop>

La operación anterior crea una nueva tabla que contiene únicamente el nombre de las etiquetas.


Filter

El operador filter filtra en una tabla los elementos que corresponden al criterio, el resultado será una nueva tabla que contendrá únicamente los elementos restantes.


<b:loop values='data:post.labels filter (l => l.name neq "Blog")' var='newArray'>
   <data:newArray/>
</b:loop>

La operación anterior crea una nueva tabla que no contiene la etiqueta "Blog".


First

El operador first devuelve el primer elemento de una tabla que corresponda al criterio, el resultado será una nueva tabla que contendrá únicamente ese elemento.


<b:loop values='data:posts filter (p => p.title contains "Juegos")' var='newArray'>
   <data:newArray/>
</b:loop>

La operación anterior devuelveúnicamente el primer elemento de la tabla data:posts que contenta el texto "Juegos".


Mas detalles y ejemplos en: Lambda operators Blogger Code PE.