Meta Funciones

» Impon


muestra serie [1 1 10]

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

muestra cambiasigno 1

-1

muestra cambiasigno 2

-2

muestra cambiasigno 3

-3

muestra impon "cambiasigno serie [1 1 10]

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

muestra impon "inc serie [1 1 10]

[2 3 4 5 6 7 8 9 10 11]

muestra impon [junta refleja] [ab cde fghi jklm]

[ba edc ihgf mlkj]

muestra impon "multi [[0 1] [2 3] [4 5] [6 7] [8 9]]

[0 6 20 42 72]

muestra impon [cambiasigno multi] [[0 1] [2 3] [4 5] [6 7] [8 9]]

[0 -6 -20 -42 -72]


» Expon


muestra suma [8 2]

10

muestra resta [8 2]

6

muestra multi [8 2]

16

muestra divid [8 2]

4

muestra expon [suma resta multi divid] [8 2]

[10 6 16 4]

Otro ejemplo:

muestra expon [mismo inv comp cambiasigno] 4

[4 0.25 -3 -4]

Otro ejemplo:

muestra expon [mismo refleja izrota derota] [0 1 2 3]

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

Otro ejemplo:

muestra expon [primero [primero menosprimero] [menosprimero menosprimero]] [0 1 2 3 4]

[0 1 [2 3 4]]


» Expon » al cuadrado


muestra expon [mismo mismo] 3

[3 3]

muestra expon [mismo mismo mismo] 3

[3 3 3]

muestra multi expon [mismo mismo] 3

9

muestra multi expon [mismo mismo] 4

16


» Expon » relación con media


muestra suma [2 3 3 1 2 3 1 1 2]

18

muestra cuenta [2 3 3 1 2 3 1 1 2]

9

muestra expon [suma cuenta] [2 3 3 1 2 3 1 1 2]

[18 9]

muestra divid expon [suma cuenta] [2 3 3 1 2 3 1 1 2]

2

muestra media [2 3 3 1 2 3 1 1 2]

2


» Dispon


muestra menos 1

-1

muestra signo 2

1

muestra cos 3

0.998629534754574

muestra dispon [menos signo cos] [1 2 3]

[-1 1 0.998629534754574]


» Transpon


transpon F L aplica F a cada lista del resultado de transponer L, como si cada elemento de estas listas fuesen pasados como entradas a F:

muestra transpon "lista [[1 2 3] [5 4 3]]

[[1 5] [2 4] [3 3]]

muestra transpon "adicion [[1 2 3] [5 4 3]]

[6 6 6]

muestra adicion 1 5

6

muestra adicion 2 4

6

muestra adicion 3 3

6

Otro ejemplo:

muestra transpon [clona lista] [[2 3 4] [a b c]]

[[a a] [b b b] [c c c c]]

muestra clona lista 2 "a

[a a]

muestra clona lista 3 "b

[b b b]

muestra clona lista 4 "c

[c c c c]

Otro ejemplo:

muestra transpon "serie: [[2 20 200] [1 1 2] [3 4 5]]

[[2 3 4] [20 21 22 23] [200 202 204 206 208]]

muestra serie: 2 1 3

[2 3 4]

muestra serie: 20 1 4

[20 21 22 23]

muestra serie: 200 2 5

[200 202 204 206 208]


» Diz


diz F [IZ DE] distribuye IZ en DE y luego aplica F. Distribuye lo que está a la izquierda entre lo que está a la derecha y luego aplica F.

muestra diz "lista [A [1 2 3]]

[[A 1] [A 2] [A 3]]

muestra diz "palabra [A [1 2 3]]

[A1 A2 A3]

Otro ejemplo:

muestra iota 5

[0 1 2 3 4]

muestra impon [adicion 3] iota 5

[3 4 5 6 7]

Lo anterior puede también escribirse como sigue:

muestra diz "adicion lista 3 [0 1 2 3 4]

[3 4 5 6 7]

Otro ejemplo:

muestra diz "lista [[A B C] [1 2 3]]

[[[A B C] 1] [[A B C] 2] [[A B C] 3]]

muestra diz "frase [[A B C] [1 2 3]]

[[A B C 1] [A B C 2] [A B C 3]]

muestra diz [junta frase] [[A B C] [1 2 3]]

[ABC1 ABC2 ABC3]


» Des


des F [IZ DE] distritribuye DE en IZ y luego aplica F. Distribuye lo que está a la derecha entre lo que está a la izquierda y luego aplica F.

muestra des "lista [[0 1 2 3 4 5] 2]

[[0 2] [1 2] [2 2] [3 2] [4 2] [5 2]]

muestra des "diferencia [[0 1 2 3 4 5] 2]

[-2 -1 0 1 2 3]

muestra des [cambiasigno diferencia] [[0 1 2 3 4 5] 2]

[2 1 0 -1 -2 -3]

Otro ejemplo:

muestra des "lista [[0 1 2 3 4 5] 0]

[[0 0] [1 0] [2 0] [3 0] [4 0] [5 0]]

muestra des "clona: [[0 1 2 3 4 5] 0]

[[] [0] [0 0] [0 0 0] [0 0 0 0] [0 0 0 0 0]]

Otro ejemplo:

muestra des "lista [[A B C] [1 2 3]]

[[A [1 2 3]] [B [1 2 3]] [C [1 2 3]]]

muestra des "frase [[A B C] [1 2 3]]

[[A 1 2 3] [B 1 2 3] [C 1 2 3]]

muestra des [junta frase] [[A B C] [1 2 3]]

[A123 B123 C123]


» Tabla


escribe html tabla "lista [[1 2 3 4 5] [A B C]]

1 A
1 B
1 C
2 A
2 B
2 C
3 A
3 B
3 C
4 A
4 B
4 C
5 A
5 B
5 C

escribe html tabla "palabra [[1 2 3 4 5] [A B C]]

1A 1B 1C
2A 2B 2C
3A 3B 3C
4A 4B 4C
5A 5B 5C

escribe html tabla "palabra [[A B C] [1 2 3 4 5]]

A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5

tabla es equivalente a:

escribe html des [diz: "palabra] [[1 2 3 4 5] [A B C]]

1A 1B 1C
2A 2B 2C
3A 3B 3C
4A 4B 4C
5A 5B 5C

escribe html des [diz: "palabra] [[A B C] [1 2 3 4 5]]

A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5

» Tabla » frecuencias absolutas


muestra expon [esencia mismo] [10 30 20 20 10 30 20]

[[10 30 20] [10 30 20 20 10 30 20]]

muestra tabla [esigual lista] expon [esencia mismo] [10 30 20 20 10 30 20]

[[1 0 0 0 1 0 0] [0 1 0 0 0 1 0] [0 0 1 1 0 0 1]]

escribe html tabla [esigual lista] expon [esencia mismo] [10 30 20 20 10 30 20]

1 0 0 0 1 0 0
0 1 0 0 0 1 0
0 0 1 1 0 0 1

Sumando por filas:

muestra impon "suma tabla [esigual lista] expon [esencia mismo] [10 30 20 20 10 30 20]

[2 2 3]

es decir hay 2 números 10, 2 números 30 y 3 números 20.

muestra expon [primero [impon "suma tabla [esigual lista]]] expon [esencia mismo] [10 30 20 20 10 30 20]

[[10 30 20] [2 2 3]]

escribe html trans expon [primero [impon "suma tabla [esigual lista]]] expon [esencia mismo] [10 30 20 20 10 30 20]

10 2
30 2
20 3

» Interpon


interpon N F L aplica la función F sobre los dos primeros elementos de una lista L, luego aplica la función sobre el resultado y el tercer elemento, luego sobre el resultado de esto y el cuarto elemento, etc. Si L tiene un único elemento entonces interpon devuelve ese elemento. Si L es una lista vacía, interpon devuelve N.

Las funciones fundamentales suma, multi y max, que reciben una lista de varios números, podrían definirse a partir de las funciones adicion, producto y max:, que reciben únicamente dos números, utilizando interpon, así:

muestra suma [1 2 3 4]

10

muestra adicion 1 2

3

muestra adicion 3 3

6

muestra adicion 6 4

10

muestra interpon 0 "adicion [1 2 3 4]

10

muestra impon [interpon 0 "adicion] [[] [1] [1 1] [1 1 1] [1 1 1 1]]

[0 1 2 3 4]

Ejemplo con producto:

muestra multi [1 2 3 4]

24

muestra producto 1 2

2

muestra producto 2 3

6

muestra producto 6 4

24

muestra interpon 0 "producto [1 2 3 4]

24

Ejemplo con max:

muestra max [1 2 3 0]

3

muestra max: 1 2

2

muestra max: 2 3

3

muestra max: 3 0

3

muestra interpon 100 "max: [1 3 2 0]

3

Ejemplo con lista:

muestra interpon [] "lista [a b c d]

[[[a b] c] d]

Ejemplo con diferencia:

muestra interpon 0 "diferencia [10 4 3 2 1]

0


» Progresa


muestra iota 5

[0 1 2 3 4]

muestra progresa "enlista "frase iota 5

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

muestra progresa "enlista "ponultimo iota 5

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

muestra progresa "mismo "adicion iota 5

[0 1 3 6 10]

Otro ejemplo:

muestra serie [1 1 10]

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

muestra progresa "mismo "producto serie [1 1 10]

[1 2 6 24 120 720 5040 40320 362880 3628800]

muestra factorial 3

6

muestra factorial 4

24

muestra factorial 5

120

muestra factorial 10

3628800


» Regresa


muestra iota 5

[0 1 2 3 4]

muestra regresa "enlista "frase iota 5

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

muestra regresa "mismo "adicion iota 5

[10 10 9 7 4]

muestra serie [1 1 10]

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

muestra regresa "mismo "producto serie [1 1 10]

[3628800 3628800 1814400 604800 151200 30240 5040 720 90 10]

muestra 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10

3628800

muestra 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10

3628800

muestra 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10

1814400


» Ingresa


muestra ingresa "mismo [2 [0 1 2 3 4]]

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

muestra ingresa "mismo [3 [0 1 2 3 4]]

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

muestra ingresa "mismo [4 [0 1 2 3 4]]

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

muestra ingresa "mismo [5 [0 1 2 3 4]]

[[0 1 2 3 4]]

muestra ingresa "mismo [6 [0 1 2 3 4]]

[[0 1 2 3 4]]

muestra ingresa "mismo [1 [0 1 2 3 4]]

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

muestra ingresa "mismo [0 [0 1 2 3 4]]

[[] [] [] [] [] []]


» Ingresa » verificación de orden


Esta es una lista de números en desorden:

muestra baraja iota 10

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

Esta lista contiene los números agrupados de 2 en dos:

muestra ingresa "mismo lista 2 [1 7 9 6 2 3 0 8 5 4]

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

Al aplicar "esmenor" a cada grupo vemos que 1 es menor que 7, y 7 es menor que 9 pero 9 no es menor que 6.

muestra ingresa "esmenor lista 2 [1 7 9 6 2 3 0 8 5 4]

[1 1 0 0 1 0 1 0 0]

Para que la lista este ordenada cada número debe ser menor que el siguiente, como en el caso a continuación:

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

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

muestra ingresa "mismo lista 2 ordena [1 7 9 6 2 3 0 8 5 4]

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

muestra ingresa "esmenor lista 2 ordena [1 7 9 6 2 3 0 8 5 4]

[1 1 1 1 1 1 1 1 1]

Si multiplicamos esta lista de 1's el resultado será 1:

muestra multi ingresa "esmenor lista 2 ordena [1 7 9 6 2 3 0 8 5 4]

1

Porque cada elemento de la lista es 1. Pero si algún elemento fuese 0, entonces:

muestra multi [1 1 0 0 1 0 1 0 0]

0

Por lo tanto, es posible verificar que una lista está ordenada con la siguiente expresión:

muestra multi ingresa "esmenor lista 2 [1 7 9 6 2 3 0 8 5 4]

0

muestra multi ingresa "esmenor lista 2 [0 1 2 3 4 5 6 7 8 9]

1


» Ref


A veces es útil modificar una función para que reciba sus entradas en orden reflejo (reverso).

Por ejemplo, si deseo restar 5 a cada uno de los elementos de una lista, lo siguiente no es lo correcto:

muestra serie [10 1 10]

[10 11 12 13 14 15 16 17 18 19]

muestra impon [diferencia 5] serie [10 1 10]

[-5 -6 -7 -8 -9 -10 -11 -12 -13 -14]

esto es debido a que:

muestra diferencia 5 10

-5

Lo correcto es:

muestra impon [ref "diferencia 5] serie [10 1 10]

[5 6 7 8 9 10 11 12 13 14]

Otro ejemplo, si queremos colocar el sufijo "resto" a los prefijos "ar" y "p" para obtener "arresto" y "presto", podríamos decir:

muestra impon [ref "palabra "resto] [ar p]

[arresto presto]

muestra palabra "ar "resto

arresto

muestra palabra "p "resto

presto


» Endosa


Diferentes funciones reciben diferente número de entradas. Unas funciones reciben una sola entrada, como suma (suma únicamente recibe una lista). Otras funciones reciben dos entradas, como adicion (adicion recibe dos números). A veces se desea que una función que recibe varias entradas trabaje con los elementos de una lista, tal que el primer elemento de la lista sea la primera entrada, y el segundo elemento sea la segunda entrada.

endosa nos permite utilizar una función que recibe dos entradas con una lista de dos elementos:

muestra palabra "para "rayos

pararayos

muestra palabra [para rayos]

palabra necesita recibir más cosas

muestra endosa "palabra [para rayos]

pararayos

muestra ponprimero [1 2 3] [4 5 6]

[[1 2 3] 4 5 6]

muestra endosa "ponprimero [[1 2 3] [4 5 6]]

[[1 2 3] 4 5 6]