Tulis fungsi yang berisi lima baris.
Jika Anda menjalankan fungsi apa adanya, itu harus mengembalikan 0.
Jika Anda menghapus salah satu dari lima baris dan menjalankan fungsinya, itu akan memberi tahu Anda baris mana yang telah dihapus (misalnya, jika Anda menghapus baris terakhir, ia harus mengembalikan 5).
Keringkasan, kebaruan, dan keanggunan semuanya patut dipertimbangkan. Solusi tertinggi yang dipilih (setelah jangka waktu yang wajar) menang.
popularity-contest
function
jawns317
sumber
sumber
Jawaban:
Rubi
Menghindari angka ajaib karena ini bukan kode golf.
Setiap baris mengeluarkan nomornya sendiri
1^2^3^4^5
. Ini Ruby, jadi baris terakhir menentukan nilai kembali.sumber
JavaScript (
13477696560 karakter)→ demo langsung ←
panggil fungsi ini dengan n = 10.
Versi sebelumnya:
65 karakter
(harus dipanggil dengan n = 15)
69 karakter
(harus dipanggil dengan n = 15)
77 karakter
134 karakter
non-golf
sumber
var a
setelahnyareturn
? Secara teori, itu seharusnya tidak tercapai.Python
Jika parameter diizinkan, maka ini akan berfungsi:
sumber
R
Fungsi ini menggunakan "konstanta" bawaan dan memberikan nilai lain untuk masing-masingnya. Jika semua variabel ini sama dengan nilai baru, fungsi mengembalikan 0. Nilai logis ditransformasikan menjadi numerik karena operator matematika. Tanda kurung di sekitar baris ke-4 memungkinkan untuk mengembalikan hasilnya (jika itu adalah perintah terakhir).
sumber
Lua 5.2+
55 karakter di badan fungsi tidak termasuk baris baru. Saya tidak bisa menghasilkan sesuatu yang lebih baik dari ini:
Berharap mendapatkan poin tambahan untuk penyalahgunaan komentar: P
Alasan itu tidak bekerja di 5.1 adalah bahwa bersarang
[[]]
telah dihapus, dan di 5.1 itu memberikan kesalahan kompilasi bukannya mengabaikannya seperti 5.2.return 7-2-5
return 1
return 7-5
return 7-2-2
return 7-2-1
return 7-2
sumber
Rubi
Saya mencoba melakukannya dengan operasi bitwise dan kemudian saya menyadari ada solusi yang lebih sederhana menggunakan daftar! Tantangan ini paling baik dilayani oleh bahasa pemrograman yang secara otomatis mengembalikan nilai terakhir yang dilihatnya, seperti Ruby.
sumber
Befunge tidak memiliki fungsi eksplisit, tapi inilah yang saya sebut fungsi di Befunge:
Baris pertama dan terakhir adalah fungsi mulai dan fungsi berakhir. Ia melakukan hal terdekat untuk "kembali", yaitu, mendorong nilai yang benar ke tumpukan.
sumber
Jawaban Baru
Saya menemukan solusi lain. Itu sangat buruk, saya sangat menyukai matematika. Solusi ini menggunakan rekursi dan variabel global (yuck!) Untuk mengetahui apakah setiap baris telah dijalankan atau tidak. Saya ingin melakukan sesuatu yang berbeda dari solusi lain, jadi ini tidak terlalu elegan, tetapi berfungsi dengan baik :)
PHP
Saya sangat menikmati tantangan ini, terima kasih! :)
Jawaban Lama
Saya memecahkannya menggunakan matematika. Jika setiap variabel dilihat sebagai tidak dikenal, dan kami melakukan satu deklarasi per baris, ada lima baris tidak diketahui dan lima baris: ini membawa kita ke sistem 5x5 berikut:
Setelah saya menemukan nilai-nilai, saya hardcoded mereka dan menambahkan beberapa hal dasar.
PHP
Catatan: Jawaban Lama tidak akan berfungsi jika dibiarkan apa adanya.
sumber
lilin lebah , 86 byte
Mencoba esolang pertamaku. Setelah kebingungan awal saya menemukan bahwa solusinya sangat sederhana.
Penjelasan:
program lilin lebah bekerja pada kisi heksagonal 2D. Program disimpan dalam format persegi panjang.
disimpan sebagai
Petunjuk untuk bergerak ke arah tertentu adalah:
Penjelasan singkat
_1 p
Buat IP, tambahkan 1, lalu redirect IP ke jalur 2_^v>~2+p
Buat IP lain, hanya dalam kasus baris 1 hilang, memperlambat IP untuk memastikan IP dari baris satu di depan, lalu tambahkan 2, lalu redirect ke baris 3> >~3+p
Tambahkan 3, lalu redirect ke baris 4> >~4+X@7~8+~@$^^{;
Tambahkan 4, kemudian atur nilai lstack ke-15, kemudian nilai Xst lstack ke atas dan ke-2, perlambat IP (untuk memastikan IP di jalur 5 ada di depan, jika jalur 5 ada) dan output hasilnya, kemudian hentikan program.> >~5+@7~8+~@${;
Tambahkan 5, lalu lakukan hal yang sama seperti pada baris 4, kecuali lambat.Pada dasarnya program hanya menghitung jumlah xor 15
Tambahan
>
dalam baris 3 hingga 5 hanya menjamin bahwa jika salah satu dari baris 2 hingga 4 hilang, IP masih akan dialihkan dengan benar dan tidak meninggalkan program.Anda dapat mengkloning juru lilin lebah saya, yang ditulis dalam Julia, dari repositori GitHub saya
Readme pada GitHub lebih terkini dan terstruktur lebih baik daripada halaman esolang.
sumber
MuPAD, 57 karakter
sumber
LISP umum:
NB: Memiliki tanda kurung pada barisnya sendiri dianggap gaya yang buruk, tetapi karena bahasa lain memiliki
end
dan}
saya menganggap itu diizinkan.sumber
Bash, 131 karakter
Semuanya mudah ke garis 5. Kemudian perlu mendeteksi jika garis akhir hilang. Ini mengambil keuntungan dari parameter fungsi yang diizinkan dengan memanggil dirinya secara rekursif, sekali, untuk menguji nilai keberhasilannya sendiri ketika diperintahkan untuk gagal pada saluran 5, dan jika saluran 5 dihapus, saluran 4 kembali
5
sebagai gantinya.(Catatan: itu ke minimum 131 karakter jika menghapus semuanya kecuali fungsi, membuang spasi, dan mengubah / bin / bash ke / bin / sh)
sumber
Javascript
sumber