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...
Odpowiedzi:
Ruby 1.9,
159156Ten program generuje pliki o nazwach „1”, „2”, „3” itd.
źródło
D (419 znaków)
sformatowany:
wariant mojej litery D.
*
poleceń opiera się nam.clear;
działało poprawnie którym nie w DMD 2,52 (błąd w kompilatorze)potrzeba
stdout.flush;
zależy od tego, czy automatyczne spłukiwanie jest włączone (nie ma go na moim komputerze)źródło
JavaScript, 245
źródło