or
Reemplaza los dos valores de arriba de la pila booleana por uno: verdadero si alguno lo es. La única forma de pedir «esto o aquello».
Datos
or saca los dos valores de arriba de la pila booleana y apila verdadero si alguno de los dos (o los dos) es verdadero. Solo da falso si los dos son falsos.
Es el lógico que más hace falta, porque entre cond y start el y es automático pero el o no. Este bot se escapa hacia atrás (.dn) si tiene poca energía (.nrg) o si lo que ve tiene en su ADN más lecturas de ojo que él (.refeye, .myeye), una forma rústica de medir al otro:
' retrocede si está débil o si el otro parece más grande
cond
*.eye5 0 >
*.nrg 500 <
*.refeye *.myeye >
or
start
20 .dn store
stopor combina solo los dos de arriba; el .eye5 de más abajo queda para el start, que lo une con y. Se lee: «ve algo, y (está débil o el otro parece más grande)».
Con la pila vacía también apila verdadero. Para el o bit a bit entre números está |; el o que excluye el caso de los dos verdaderos es xor.