Terinspirasi oleh pertanyaan ini .
Buat program yang meminta pengguna untuk menyimpan beberapa data, dan ketika program berhenti, keluarkan program itu sendiri, kecuali data sesi berubah.
Pengguna kemudian membuka program yang baru dibuat, dan dapat memanggil kembali data dari program sebelumnya.
Perintah
KEY VALUE
: setel variabel sesiKEY
menjadiVALUE
*
: hapus semua data! KEY
: menghapusKEY
? KEY
: permintaanKEY
(jika tidak ada: cetak apa-apa dan lanjutkan)- jika tidak, keluar dari program
Baik kunci atau nilai tidak dapat berisi spasi apa pun. Nama file program yang baru dibuat harus mengidentifikasi versi program, Anda dapat menggunakan tanggal atau penghitung.
Contoh interaksi:
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
Pengguna membuka program yang baru dibuat
? name output: test
name retest data is now { name: retest }
* clear
data is now { }
Contoh penerapan: https://gist.github.com/1128876
Aturan
- Anda tidak perlu menyimpan komentar atau ruang kosong yang tidak signifikan dalam program quined: cukup pertahankan fungsionalitas dan datanya
- Anda tidak dapat menggunakan penyimpanan eksternal apa pun.
- Tidak ada quina yang curang, seperti masalah quine lainnya.
- Kode terpendek menang.
SELECT 1 AS ID, NAME AS BLAH UNION...
Jawaban:
Ruby 1.9,
159156Program ini menghasilkan file bernama "1", "2", "3" dan seterusnya.
sumber
D (419 karakter)
diformat:
varian quine D saya
yang
*
perintah bergantung padam.clear;
pekerjaan dengan benar yang tidak di DMD 2,52 (bug di compiler)kebutuhan akan
stdout.flush;
tergantung apakah penyiraman otomatis diaktifkan (tidak pada mesin saya)sumber
JavaScript, 245
sumber