Zainspirowany tym pytaniem .
Utwórz program, który zachęca użytkownika do zapisania niektórych danych, a gdy program kończy pracę, wypluj sam program, z wyjątkiem danych sesji zmienionych.
Następnie użytkownik otwiera nowo wygenerowany program i może przywołać dane z poprzedniego programu.
Polecenia
KEY VALUE
: ustawia zmienną sesjiKEY
naVALUE
*
: wyczyść wszystkie dane! KEY
: usunąćKEY
? KEY
: zapytanieKEY
(jeśli nie istnieje: nic nie drukuj i przejdź dalej)- w przeciwnym razie zamknij program
Ani klucz, ani wartość nie mogą zawierać spacji. Nazwa pliku nowo wygenerowanego programu musi określać wersję programu, można użyć dat lub liczników.
Przykładowa interakcja:
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
Użytkownik otwiera nowo wygenerowany program
? name output: test
name retest data is now { name: retest }
* clear
data is now { }
Przykładowa implementacja: https://gist.github.com/1128876
Zasady
- Nie musisz zachowywać komentarzy ani nieistotnych białych znaków w programach poddanych działaniu: po prostu zachowaj funkcjonalność i dane
- Nie możesz używać pamięci zewnętrznej.
- Żadnych oszukiwania quines, jak wszystkie inne problemy quine.
- Najkrótszy kod wygrywa.
SELECT 1 AS ID, NAME AS BLAH UNION...