Ruby hadir dengan REPL bawaan, yang cukup praktis.
Tantangan Anda adalah membuatnya crash dalam jumlah kode paling sedikit!
Definisi "crash" adalah "membuatnya keluar dengan cara yang tidak disengaja ." Ini berarti exit
, quit
, abort
, irb_exit
, irb_quit
, et. Al. bukan jawaban yang valid.
Selain itu, Anda tidak boleh menyebabkan efek samping apa pun pada bagian lain dari sistem. Misalnya, `rm -rf /`
tidak valid juga.
Versi 1.9.3 atau lebih tinggi adalah valid. Jika kode Anda hanya berfungsi pada versi Ruby tertentu, Anda dapat menentukannya dalam jawaban.
Batasan terakhir adalah Anda tidak boleh bergantung pada permata apa pun.
Ini adalah kode-golf , jadi kode terpendek yang menabrak IRB akan menang!
Jawaban:
5 karakter
(terinspirasi oleh jawaban @daniero )
sumber
irb(main):001:0> ENV=0 (irb):1: warning: already initialized constant ENV
irb 0.9.6(09/06/30)
16 karakter
Bukan yang terpendek, tapi saya pikir itu lucu bahwa itu tidak crash sampai baris kedua. Menghasilkan sekitar 20 baris teks sebelum IRB keluar. Untuk beberapa alasan itu tidak dapat disingkat menjadi misalnya
2.times{String=0}
.sunting
Dari semua jawaban sejauh ini, ini adalah satu-satunya yang bekerja untuk saya (dan itu bekerja di semua versi yang bisa saya dapatkan), dan saya sudah menguji semuanya dalam versi ini:
Di Linux apa pun yang saya dapatkan ketikassh
masuk ke universitas saya: Default Mac OS X Mavericks: Diinstal melalui Homebrew pada OS X:edit 2
7 karakter
Menggabungkan versi pertama saya (dan / atau jawaban @ Howard , untuk referensi silang maksimum) dengan jawaban @ chinese perl goth :
sumber
Array=0
crash segera.=
dan itu masih macet.12 karakter
ruby bukan cangkir teh saya, tapi saya baru tahu bahwa irb bertindak lucu ketika saya menutup stdin :)
diuji pada irb 0.9.6 (09/06/30) dan ruby 1.9.3p194
sumber
STDIN.close
bekerja juga, dan itu 1 kurang char!$>.close
.109 karakterVarian yang lebih pendek pada jawaban @ daniero:
Ini berfungsi setidaknya di OS default Mavericks Ruby (2.0.0).
Jawabannya pada dasarnya bergantung pada fakta bahwa
Token
fungsi Ruby melakukancase
pada token input. Salah satu kasus memeriksaString
, yang telah didefinisikan ulang oleh baris pertama. Kasing ini gagal, maka kasing jatuh ke default, yang mengasumsikan objek memilikiancestors
accessor (yang tidak).Karena "bug" ada di tokenizer, baris pertama tidak akan gagal karena garis hanya berlaku setelah penguraian selesai. Dengan demikian, itu hanya mempengaruhi baris berikutnya. Saluran berikutnya harus berisi beberapa jenis operator untuk melihat kegagalannya.
sumber
5 karakter
Set stdout ke stdin yang melempar kesalahan saat mencoba membuka stdin untuk menulis dan crash irb.
sumber
22 karakter
Rupanya itu kacau dengan beberapa irb internal. (Untuk memperbaikinya, tambahkan
self.
setelahdef
.)sumber
12 karakter
Sejauh yang saya tahu, ada empat metode di kelas Object yang menunjukkan perilaku semacam ini:
sumber
nil
dan menjalankan5 Karakter
Tidak ada yang mengganggu IRB seperti mendefinisikan ulang IRB.
sumber
1210 karakterSaya tidak tahu apakah ini penting, karena
exec
sumber
exec
8 karakter
Mirip dengan jawaban cina perl goth :
$>
adalah alias untuk STDOUT.sumber
26 + 1 = 27 karakter
Ini tidak terlalu golf, tetapi saya senang menemukannya secara tidak sengaja dan berpikir orang lain akan menikmatinya.
Saya menambahkan +1 ke skor karena Anda harus menekan Enter untuk kedua kalinya setelah memasukkan di atas (tetapi tidak +2 karena tidak ada orang lain yang menghitung Enter).
sumber