Combine quines


9

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 xha una riduzione y, 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!


atomic-code-golf si adatterebbe al tuo pareggio, ma non aggiungerei un tag per il pareggio. Se non esiste un tag appropriato, l'impostazione predefinita è code-challenge , che indica che la sfida utilizza un criterio vincente personalizzato.
Martin Ender,

Penso che sarebbe utile se dicessi quali convenzioni di associatività sta usando la tua notazione.
xnor

Il ciclo come lo hai definito non è necessariamente ben definito, perché una determinata espressione può avere più riduzioni disponibili.
Peter Taylor,

@ThreeFx, ti sbagli. Ad esempio, se xha una riduzione per yallora W f x -> W f y -> f y yo W f x -> f x x -> f x y -> f y ysono lunghezze diverse.
Peter Taylor,

4
Ora la cosa difficile è che qualcuno non può rivendicare un punteggio solo pubblicando un ciclo; hanno bisogno di una prova del fatto che non esiste una riduzione più breve, che potrebbe essere difficile dal punto di vista computazionale.
xnor

Risposte:


7

Devo iniziare con qualcosa

1:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

2:(((C I (C (C I) (W I))) (W I) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

3:(((I (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

4:(((W I) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

5:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

6:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

7:(((C I (C (C I) (W I))) (W I) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

8:(((I (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

9:(((W I) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

10:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

11:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

12:(((C I (C (C I) (W I))) (W I) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

13:(((I (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

14:(((W I) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

15:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

16:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

17:(((C I (C (C I) (W I))) (W I) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

18:(((I (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

19:(((W I) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

20:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

21:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

22:(((C I (C (C I) (W I))) (W I) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

23:(((I (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

24:(((W I) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

25:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

26:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

27:(((C I (C (C I) (W I))) (W I) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

28:(((I (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

29:(((W I) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

30:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

31:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.