aboutsummaryrefslogtreecommitdiffstats
path: root/src/danzasistemas-tag.gmo
blob: 5e8b810895c90dd25e99ca96743d2d4c474a9aa4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# danzasistemas-tag

una compudanza basada en máquina abstracta (tag systems, o bien, máquina de post)

=> ./compudanzas.gmi {compudanzas}

# descripción

las danzasistemas-tag consisten en "batallas" de baile en las que alternamos recibiendo y respondiendo secuencias de movimiento. 

las secuencias que respondemos son producto de procesar elementos de la secuencia que recibimos.

# indicaciones

necesitamos los siguientes elementos:

* A: alfabeto finito de símbolos/movimientos identificables y replicables
* P: las reglas de producción: qué símbolos/movimientos hay que agregar al final de la nueva secuencia, de acuerdo al primer símbolo/movimiento de la secuencia recibida.
* m: número de eliminación: cuántos símbolos/movimientos hay que eliminar del inicio de la secuencia recibida.

al recibir una secuencia de movimiento, hemos de poner atención y realizar lo siguiente para construir nuestra respuesta:

* notar el primer símbolo/movimiento, que nos indica qué regla de producción seguir al final de la secuencia.
* descartar la cantidad de símbolos/movimientos del inicio de la secuencia de acuerdo al número de eliminación. (esto incluye al primer símbolo/movimiento).
* memorizar y replicar la secuencia recibida a partir de ese punto, en orden y hasta el final.
* agregar el o los símbolos/movimientos al final de la secuencia, de acuerdo a la regla de producción.

según la danzasistema-tag, la dinámica de respuestas continúa hasta llegar al símbolo/movimiento que indique detenerse, o hasta que la secuencia de movimiento quede vacía.

# ejemplo

cómputo de secuencias de collatz, tomado de wikipedia

=> https://en.wikipedia.org/wiki/Tag_system#Example:_Computation_of_Collatz_sequences Tag system - Example: Computation of Collatz sequences (web)

los elementos de nuestra danzasistema-tag serían los siguientes:

## A: alfabeto finito de símbolos/movimientos

tres símbolos/movimientos: a, b, c

## P: reglas de producción

si primer símbolo/movimiento es 'a', agrega 'bc' al final.

si primer símbolo/movimiento es 'b', agrega 'a' al final.

si primer símbolo/movimiento es 'c', agrega 'aaa' al final.

nota cómo cada regla de producción agrega una cantidad distinta de símbolos/movimientos al final. 

## m: número de eliminación

en este caso, siempre descartaremos 2 símbolos/movimientos del inicio de la secuencia.

## desarrollo 

partiendo de una secuencia inicial 'aaa'...

```
inicio:  aaa
respuesta: abc
respuesta:   cbc
respuesta:     caaa
respuesta:       aaaaa
respuesta:         aaabc
respuesta:           abcbc
respuesta:             cbcbc
etc...
```

siempre se descartan los 2 símbolos/movimientos del inicio, pero la cantidad de símbolos/movimientos que se agregan al final cambian de acuerdo a la regla de producción.

esta dinámica de respuestas a partir de esa secuencia inicial, eventualmente termina descartando a la secuencia completa.


## llega(n) aquí
=> ./compudanzas.gmi {compudanzas}
Un proyecto texto-plano.xyz