pengantar
Compute adalah bahasa lelucon esoterik .
Dari entri esolangs:
Compute tidak memiliki sintaks yang diperlukan dan memiliki kekuatan untuk menyelesaikan setiap dan semua masalah. Cukup pintar untuk menafsirkan bahasa manusia (Inggris, Spanyol, Latin, dll), bahasa pemrograman apa pun (C ++, Java, brainfuck, dll), atau jenis data apa pun yang dapat Anda pikirkan. Satu-satunya kejatuhan adalah bahwa sama sekali tidak ada I / O.
Beberapa contoh program
Hello World
Program dasar Hello World
What is love?
Yang menentukan adalah cinta (bayi tidak menyakitiku).
When will we ever graduate?
Tentukan tanggal pasti situs ini untuk keluar dari versi beta.
Tantangan
Tugas Anda adalah untuk menulis juru bahasa Compute sepenuhnya. Ini terdengar sangat sulit, tetapi perlu diingat bahwa Compute secara absolut tidak memiliki I / O. Jadi penerjemah Anda hanya akan tidur satu detik untuk setiap baris dalam program input dan output \n\nDone.
setelah ini (ini adalah satu-satunya pengecualian untuk hal no I / O).
Anda dapat menemukan juru bahasa resmi di bagian bawah situs ini .
Perhatikan bahwa penerjemah resmi berhenti satu detik untuk setiap karakter dalam kode sumber yang diberikan. Untuk menghindari waktu menunggu yang lama saat menguji juru bahasa Anda dengan pertanyaan yang berarti, kami tetap mengikuti garis dalam tantangan ini.
Aturan
- Input mungkin berisi beberapa baris yang dipisahkan oleh a
\n
. Akan selalu ada setidaknya satu baris. - Berbeda dengan implementasi resmi Anda tidak harus mengambil file sebagai input. Anda dapat mengambil program Hitung dalam bentuk input apa pun yang Anda inginkan.
- Satu-satunya keluaran yang diizinkan adalah
\n\nDone.
. Baris baru tambahan dibolehkan. - Fungsi atau program lengkap diizinkan.
- Aturan default untuk input / output.
- Celah standar berlaku.
- Ini adalah kode-golf , sehingga byte-count terendah akan menang. Tiebreak adalah pengiriman sebelumnya.
sumber
Jawaban:
05AB1E ,
16151413 byteKode:
Penjelasan:
Bagian ini setara dengan
"\n\nDone."
:Cobalah online!
Menggunakan pengodean CP-1252 .
sumber
Orasi , 117 byte
Mari kita jelaskan ini. Pertama, ini mentransformasikan ke:
Masih bingung? Mari kita katakan seperti ini:
Mengimpor modul
time
.Ini adalah loop sementara yang kondisinya
input()
.Program kami perlu bernafas sekarang, dan
inhale
, meskipun kurang sehat, golfier.Now
ambil modul terbaru yang diimpor dan tambahkan.sleep(1)
padanya.Mari kita keluar dari while loop.
Mencetak dua baris baru.
Mulai menangkap string.
Menambahkan
Done.
ke string yang ditangkap.Selesai menangkap string.
sumber
JavaScript Shell REPL, 38 byte
Sebagai fungsi yang menerima program sebagai argumen string dan mengembalikan hasilnya:
29 byte jika fungsi dapat menerima inputnya dalam bentuk array baris, atau jika harus tidur 1 detik per karakter:
34 byte jika itu juga harus lebih seperti sebuah program dan secara eksplisit mencetak Selesai:
Ini bekerja untuk saya dalam penerjemah Spidermonkey mandiri.
sumber
Javascript ES6,
4645 byteTerima kasih ӍѲꝆΛҐӍΛПҒЦꝆ untuk menghemat satu byte
Mengasumsikan array sebagai input.
Seperti yang ditunjukkan oleh ӍѲꝆΛҐӍΛПҒЦꝆ dan edc65, Anda dapat menulis yang berikut ini, tetapi tidak akan menghemat byte:
sumber
1e3
lebih baik daripada10e2
.1e3 is better than 10e2
tidak percaya saya melewatkan itu.Bash + coreutils, 28
Tidur 1 detik untuk setiap baris. Gunakan
wc -c
sebagai gantinya untuk setiap byte, atauwc -m
sebagai gantinya untuk setiap karakter.sumber
Pyth,
1514 byte(Anda dapat mencobanya secara online , tetapi tidak ada gunanya melakukannya.)
sumber
Done
(yang cukup lucu karena Anda memberi tahu orang yang sama tentang jawaban lain): PPerl, 21 + 1 = 22 byte
Membutuhkan
-p
bendera:sumber
Python 3, 58 byte
sumber
MATL , 17 byte
Baris kosong yang tertinggal (diikuti oleh baris baru) digunakan untuk menandai akhir input. Ini diperlukan dalam MATL karena input bersifat interaktif dan setiap input diakhiri dengan baris baru.
Cobalah online!
sumber
Done
?QBasic, 54 byte
Mengambil baris program demi baris dari input pengguna, diakhiri oleh baris kosong. Mematuhi surat hukum, meskipun mungkin bukan semangat, dengan berhenti 1 detik setelah membaca setiap baris. (Spesifikasi tidak secara teknis mengatakan bahwa jeda semua harus datang setelah input selesai.) Jika ini dianggap terlalu teduh, inilah versi 64-byte yang berhenti setelah seluruh program dimasukkan:
Versi bonus dengan file I / O (87 byte):
sumber
Ruby, 32 byte
Baca dari stdin.
sumber
OCaml, 61 byte
Mengasumsikan input adalah daftar.
sumber
Jelly , 12 byte (tidak bersaing)
Cobalah online!
Catatan: Tolong jangan menyarankan menempatkan
⁷⁷
dalam string terkompresi, itu akan membuatnya lebih lama (“¡OÑL[Ṁ»
).Penjelasan:
sumber
œS
.awk, 34 byte
Karena tidak ada I / O dan hasil akhirnya tidak bisa dihindari,
Done.
bagian ini dikeluarkan tepat di awal.Satu-satunya cara untuk tidur di awk adalah dengan menggunakan sistem
sleep
. Cara terpendek untuk memohonnya adalah denganprint|"sleep "NR
dan kita mungkin juga menyalahgunakan yang tidak bergunaprint
.sumber