sfondo
Hai appena imparato cos'è la logica combinatoria . Incuriosito dai vari combinatori, trascorri un po 'di tempo a conoscerli. Alla fine ti imbatti in questa particolare espressione:
(S I I (S I I))
Si nota che quando si tenta di ridurlo alla sua forma normale, si riduce a se stesso dopo tre passaggi:
(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)
Sei determinato a trovare altre espressioni che condividano questo tratto e inizi a lavorarci immediatamente.
Regole
È possibile utilizzare qualsiasi combinazione dei seguenti combinatori:
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
L'applicazione è lasciata associativa, il che significa che in
(S K K)
realtà lo è((S K) K)
.Una riduzione è minima, non esiste un altro ordine di passaggi di riduzione che utilizza meno passaggi. Esempio: se
x
ha una riduzioney
, allora la riduzione minima corretta di(W f x)
è:(W f x) = (W f y) (1) = f y y (2)
e non
(W f x) = f x x (1) = f y x (2) = f y y (3)
Si applicano scappatoie standard.
Compito
Definiamo il ciclo di un'espressione come il numero minimo di riduzioni tra due stesse espressioni.
Il tuo compito è trovare l'espressione, con il numero di combinatori usati <100, che produce il ciclo più lungo.
punteggio
Il tuo punteggio sarà determinato dalla lunghezza del ciclo della tua espressione. Se l'espressione di due persone ha lo stesso ciclo, vince la risposta che utilizza meno combinatori. Se entrambi usano lo stesso numero di combinatori, vince la risposta precedente.
Buona fortuna e buon divertimento!
x
ha una riduzione per y
allora W f x -> W f y -> f y y
o W f x -> f x x -> f x y -> f y y
sono lunghezze diverse.