Funciones Filtros

» Segrega


segrega separa en dos grupos de acuerdo a un filtro de segregación. El primer grupo es el grupo de los que no cumplen. El segundo grupo es el grupo de los que sí cumplen:

es mayor el número en cuestión que 3?

muestra expon [[impon [esmayor dista 3]] mismo] iota 10

[[0 0 0 0 1 1 1 1 1 1] [0 1 2 3 4 5 6 7 8 9]]

muestra segrega [[0 0 0 0 1 1 1 1 1 1] [0 1 2 3 4 5 6 7 8 9]]

[[0 1 2 3] [4 5 6 7 8 9]]

0, 1, 2 y 3 no cumplen con la función de segregación.

Estos son los que sí cumplen:

muestra ultimo [[0 1 2 3] [4 5 6 7 8 9]]

[4 5 6 7 8 9]

es mayor 3 que el número en cuestión?:

muestra expon [[impon [esmayor lista 3]] mismo] iota 10

[[1 1 1 0 0 0 0 0 0 0] [0 1 2 3 4 5 6 7 8 9]]

muestra segrega [[1 1 1 0 0 0 0 0 0 0] [0 1 2 3 4 5 6 7 8 9]]

[[3 4 5 6 7 8 9] [0 1 2]]

3 es mayor que cada uno de los números en [0 1 2]. [0 1 2] es el grupo de números que pasan el filtro.


» Congrega


congrega es lo inverso de "segrega"

muestra segrega [[1 1 1 1 1 0 0 0] [1 2 3 4 5 6 7 8]]

[[6 7 8] [1 2 3 4 5]]

muestra congrega [[1 1 1 1 1 0 0 0] [[6 7 8] [1 2 3 4 5]]]

[1 2 3 4 5 6 7 8]

muestra congrega [[1 1 1 1 1 0 0 0] [[6 7 8] [10 20 30 40 50]]]

[10 20 30 40 50 6 7 8]

muestra congrega [[0 1 0 1 1 1 1] [[01 02] [11 12 13 14 15]]]

[01 11 02 12 13 14 15]

muestra congrega [[1 1 0 0] [[a b c d e] [A B C D E]]]

[A B a b]

muestra congrega [[1 1 0 0] [abcde ABCDE]]

[A B a b]


» Escoge


escoge [F L] devuelve los elementos de L para los cuales al aplicarse la función F sobre ellos, dicha función devuelve 1. Escoge está definida en base a "segrega".

muestra iota 10

[0 1 2 3 4 5 6 7 8 9]

muestra expon [[impon [esmayor lista 3]] mismo] iota 10

[[1 1 1 0 0 0 0 0 0 0] [0 1 2 3 4 5 6 7 8 9]]

muestra segrega [[1 1 1 0 0 0 0 0 0 0] [0 1 2 3 4 5 6 7 8 9]]

[[3 4 5 6 7 8 9] [0 1 2]]

muestra ultimo segrega [[1 1 1 0 0 0 0 0 0 0] [0 1 2 3 4 5 6 7 8 9]]

[0 1 2]

muestra escoge [esmayor lista 3] iota 10

[0 1 2]


» Agrega


Según el diccionario un agregado es "conjunto de cosas que forman un solo cuerpo".

agrega crea agregados de lo que esta a la derecha utilizando el filtro que esta la izquierda,

muestra agrega [[2 2 1 1 1 1 1 2] [1 2 3 4 5 6 7 8 9]]

[[1 2 8] [3 4 5 6 7]]

1, 2 y 8 pertenecen al grupo 2 (asi lo dice el elemento filtro), 3, 4, 5, 6, 7 pertenecen al grupo 1 (asi lo dice el elemento filtro).

El grupo 2 aparece antes que el grupo 1 porque:

muestra esencia [2 2 1 1 1 1 1 2]

[2 1]

es decir, el orden de los grupos, los da la esencia del filtro. El grupo 2 resultó estar antes que el grupo 1. No están ordenados.


» Agrega » posible aplicación


Doce números entre 0 y 11:

muestra impon "azar clona [12 12]

[2 4 8 10 9 6 10 5 6 10 1 5]

Queremos agruparlos en 4 grupos. 12 / 4 = 3 (Por eso es "dista 3")

muestra des [suelo cociente] dista 3 [2 4 8 10 9 6 10 5 6 10 1 5]

[0 1 2 3 3 2 3 1 2 3 0 1]

muestra agrega lista [0 1 2 3 3 2 3 1 2 3 0 1] [2 4 8 10 9 6 10 5 6 10 1 5]

[[2 1] [4 5 5] [8 6 6] [10 9 10 10]]

muestra esencia [0 1 2 3 3 2 3 1 2 3 0 1]

[0 1 2 3]

Los grupos salieron ordenados. Que buena suerte!

Entonces,

El grupo 0 tiene los valores 2 y 1

El grupo 1 tiene los valores 4 y dos valores 5.

El grupo 3 tiene tres valores 10 y un valor 9.

Contemos cuandos valores cayeron dentro de cada grupo:

muestra impon "cuenta [[2 1] [4 5 5] [8 6 6] [10 9 10 10]]

[2 3 3 4]

El grupo 0 tiene 2 valores

El grupo 1 tiene 3 valores

El grupo 2 tiene 3 valores

El grupo 4 tiene 4 valores


» Disgrega


disgrega también hace grupos, pero de acuerdo a las "rachas" que hayan en el filtro. Una "racha" es una serie de elementos repetidos:

[1 1 1 2 2 2 1 1 1]

Tiene 3 rachas porque tiene 3 series de elementos repetidos:

[[1 1 1] [2 2 2] [1 1 1]]

muestra disgrega [[1 1 1 2 2 2 1 1 1] [1 2 3 4 5 6 7 8 9]]

[[1 2 3] [4 5 6] [7 8 9]]

muestra disgrega [[1 1 1 2 2 1 2 2 2] [1 2 3 4 5 6 7 8 9]]

[[1 2 3] [4 5] [6] [7 8 9]]

muestra disgrega [[1 2 1 2 1 2 1 2 1] [1 2 3 4 5 6 7 8 9]]

[[1] [2] [3] [4] [5] [6] [7] [8] [9]]

Para encontrar cuantas rachas tiene una serie:

muestra duplica [1 1 1 2 2 2 1 1 1]

[[1 1 1 2 2 2 1 1 1] [1 1 1 2 2 2 1 1 1]]

muestra disgrega duplica [1 1 1 2 2 2 1 1 1]

[[1 1 1] [2 2 2] [1 1 1]]

Otro ejemplo:

muestra disgrega duplica "Mississippi

[[M] [i] [s s] [i] [s s] [i] [p p] [i]]

muestra impon "junta disgrega duplica "Mississippi

[M i ss i ss i pp i]