Antecedentes
Acabas de aprender qué es la lógica combinatoria . Intrigado por los diversos combinadores, pasa bastante tiempo aprendiendo sobre ellos. Finalmente te topas con esta expresión particular:
(S I I (S I I))
Observa que al intentar reducirlo a su forma normal, se reduce a sí mismo después de tres pasos:
(S I I (S I I))
= (I (S I I) (I (S I I))) (1)
= (S I I (I (S I I))) (2)
= (S I I (S I I)) (3)
Está decidido a encontrar otras expresiones que compartan este rasgo y comience a trabajar en esto de inmediato.
Reglas
Puede usar cualquier combinación de los siguientes combinadores:
B f g x = f (g x) C f x y = f y x I x = x K x y = x S f g x = f x (g x) W f x = f x x
La aplicación se deja asociativa, lo que significa que en
(S K K)
realidad lo es((S K) K)
.Una reducción es mínima, no hay otro orden de pasos de reducción que use menos pasos. Ejemplo: si
x
tiene reduccióny
, entonces la reducción mínima correcta de(W f x)
es:(W f x) = (W f y) (1) = f y y (2)
y no
(W f x) = f x x (1) = f y x (2) = f y y (3)
Se aplican lagunas estándar.
Tarea
Definimos el ciclo de una expresión como el número mínimo de reducciones entre dos mismas expresiones.
Su tarea es encontrar la expresión, con el número de combinadores utilizados <100, lo que produce el ciclo más largo.
Puntuación
Su puntaje estará determinado por la duración del ciclo de su expresión. Si la expresión de dos personas tiene el mismo ciclo, la respuesta que usa menos combinadores gana. Si ambos usan el mismo número de combinadores, la respuesta anterior gana.
¡Buena suerte y diviertete!
fuente
x
tiene una reducción ay
continuaciónW f x -> W f y -> f y y
oW f x -> f x x -> f x y -> f y y
son longitudes diferentes.Respuestas:
Tengo que empezar con algo
fuente