sgnstore
Cambia lo que hay en una celda por su signo: −1 si es negativo, 0 si es cero, 1 si es positivo.
Datos
- Palabra
sgnstore- Familia
- Escritura en memoria
- Pila entera
- saca 1, pone 0
- Qué hace
- Saca una dirección y deja en la celda solo su signo: −1, 0 o 1.
- Costo
- Store dividido por el divisor de cada uno, solo si escribe
- División del costo
- ÷ 7
- Se ejecuta en
- en el cuerpo de un gen (start o else) y solo si el tope de la pila booleana es verdadero o está vacía
- Marca lazos
- no
d sgnstore saca la dirección d y deja en la celda solo el signo de lo que tenía: −1, 0 o 1. No toma ningún valor de la pila.
| Palabra | Pila después |
|---|---|
51 | 51 |
sgnstore | (vacía); si la celda 51 tenía −77, ahora tiene −1 |
Sirve para quedarte con la dirección de un cambio y olvidarte del tamaño:
' la 51 queda en -1, 0 o 1 según la energía haya bajado, seguido igual o subido
cond
start
*.nrg *50 sub 51 store
51 sgnstore
*.nrg 50 store
stopLa celda 50 guarda la energía (.nrg) del ciclo anterior. La diferencia va a la 51 y sgnstore la reduce a su signo. Un bot que está gastando energía ve −1 ahí casi todos los ciclos. El valor ya hecho −1, 0 o 1 se puede multiplicar después por lo que quieras.
Es lo mismo que *51 sgn 51 store (ver sgn), con menos palabras y a la séptima parte del costo de un store.