Ispirato da questa domanda .
Creare un programma che richiede all'utente di memorizzare alcuni dati e, quando il programma viene chiuso, espellere il programma stesso, ad eccezione dei dati di sessione modificati.
L'utente quindi apre il programma appena generato e può richiamare i dati dal programma precedente.
comandi
KEY VALUE
: imposta la variabile di sessioneKEY
suVALUE
*
: cancella tutti i dati! KEY
: EliminaKEY
? KEY
: queryKEY
(se non esiste: stampa nulla e passa avanti)- in caso contrario, chiudere il programma
Né chiave né valore non possono contenere spazi. Il nome file del programma appena generato deve identificare la versione del programma, è possibile utilizzare date o contatori.
Esempio di interazione:
name test store name = test
data is now { name: test }
0 1 data is now { name: test, 0: 1 }
? name output: test
! 0 delete 0
data is now { name: test }
hello good world data is now { name: test, hello: good }
the extra word "world" is ignored
egiwiwegiuwe the "otherwise" case: quit program
L'utente apre il programma appena generato
? name output: test
name retest data is now { name: retest }
* clear
data is now { }
Implementazione di esempio: https://gist.github.com/1128876
Regole
- Non è necessario conservare commenti o spazi bianchi insignificanti nel programma quined: basta preservare la funzionalità e i dati
- Non è possibile utilizzare alcuna memoria esterna.
- Nessuna truffa, come qualsiasi altro problema.
- Il codice più corto vince.
SELECT 1 AS ID, NAME AS BLAH UNION...