Program Anda:
Anda akan menulis dua program (keduanya dalam bahasa yang sama). Program penyimpanan mengambil string dari STDIN dan menyimpannya di suatu tempat yang persisten (lihat di bawah) dan kemudian keluar tanpa kesalahan. Program pengambilan tidak mengambil input, mengambil string yang disimpan, dan mencetaknya ke STDOUT.
Tes objektif Kegigihan:
Anda harus dapat menjalankan program penyimpanan pada mesin lokal Anda, kemudian menghidupkan-daya mesin lokal Anda, kemudian memanggil program pengambilan di mesin lokal Anda. Anda dapat menyimpan string sesuai keinginan Anda (bahkan di web) selama Anda lulus tes reboot ini.
Kasus uji:
Penyimpanan kemudian pengambilan:
echo foo | Store
Retrieve
foo
Toko Berulang harus menimpa (seperti metode set ()):
echo foo | Store
echo bar | Store
Retrieve
bar
Pengambilan Berulang adalah metode yang tidak merusak (seperti get ()):
echo foo | Store
Retrieve
foo
Retrieve
foo
Pengambilan sebelum doa Penyimpanan:
Anda tidak perlu khawatir tentang ini. Program pengambilan Anda dapat mengasumsikan bahwa program penyimpanan telah dijalankan di beberapa titik di masa lalu.
Input / Keluwesan fleksibilitas.
Orang-orang meminta saya untuk memperluas ini dari STDIN / STDOUT yang ketat ke aturan IO standar. Saya tidak bisa karena itu akan menyebabkan terlalu banyak celah. Beberapa opsi IO standar sudah memiliki input yang disimpan secara persisten, misalnya "program dapat mengambil input dari file". Saya ingin menjadi lebih fleksibel daripada STDIN dan STDOUT yang ketat, tetapi tanpa membuka pintu air.
Dari utas aturan IO standar, saya memilih yang tidak melanggar tantangan:
Program dapat mengambil input melalui prompt GUI dan prompt baris perintah jika Anda mau
Program dapat menampilkan dengan menampilkannya di layar Ini termasuk dialog GUI
Program dapat mengambil input melalui argumen baris perintah
Program dapat menghasilkan ke STDERR tetapi masih tidak bisa benar-benar melakukan kesalahan
Jika Anda menggunakan alternatif, itu harus interaktif-pengguna. Pengguna seharusnya tidak perlu melakukan pekerjaan lain selain mem-pipkan input mereka ke program Anda, mengetikkannya ke prompt yang disediakan program Anda, atau mengetik input sebagai baris perintah pada program Anda. Pengguna tidak perlu melakukan apa pun selain menjalankan program pengambilan Anda untuk melihat output yang ditampilkan di layar atau dikirim ke STDOUT atau STDERR.
Asumsi yang diizinkan:
- Dua program Anda akan dijalankan di direktori yang sama
- Program Anda memiliki izin baca-tulis untuk direktori itu
- File yang Anda buat akan selamat dari reboot (tidak dalam temp temp)
- Satu trailing newline yang bukan bagian dari string diizinkan. Tidak ada spasi spasi tambahan lainnya
Ini adalah kode-golf, dan skor Anda adalah jumlah byte dari kedua program.
Store
?
echo $@>x
dancat x
valid?