Setelah semua kesenangan yang kami alami dengan tantangan polyglot di masa lalu ( baru-baru ini ), bagaimana dengan tantangan di mana output bisa dalam dua bahasa?
Jawaban Anda perlu menerima input boolean b
dan output teks "true"
atau "false"
. Kode yang sama perlu ditampilkan, ketika dijalankan dalam bahasa lain, "waar"
atau "onwaar"
atau terjemahan lain dari true
dan false
.
Memasukkan
- Masukan adalah kebenaran / falsey yang dapat dibedakan secara jelas. Dapat diterima adalah nilai aktual T / F, sedikit, int atau (kosong) string.
- Input harus sama untuk semua bagian dari kiriman Anda.
Keluaran
Output dapat dikembalikan oleh fungsi, ditulis ke
STDOUT
, ditempatkan di jendela sembulan, cetak 3D dan dikirim dll.Output harus mewakili keadaan
b
. Jadi 'kebenaran' perlu menampilkan 'benar', 'waar' ... dan 'falsey' harus mengarah ke 'false', 'onwaar', dll.Bahasa yang berbeda dapat menggunakan metode keluaran yang berbeda.
Bahasa yang digunakan
Salah satu output Anda HARUS
"true"
dan"false"
.Versi bahasa pemrograman yang berbeda dihitung sebagai bahasa yang berbeda untuk tantangan ini.
Dialek yang berbeda dari bahasa manusia dianggap sebagai bahasa yang berbeda untuk tantangan ini.
Anda dapat memperluas polyglot ke lebih dari dua bahasa pemrograman. Setiap bahasa pemrograman harus menghasilkan bahasa manusia yang berbeda.
Jawaban dengan bahasa terbanyak akan dinyatakan sebagai pemenang. Saat diikat, bytecount dipertimbangkan.
sumber
"True"
dan"False"
dapat diterima sebagai pengganti yang dibutuhkan"true"
dan"false"
?Jawaban:
Dyalog APL ,
243237 byte : 14 bahasa, dapat diperpanjang hingga 131 *-6 byte terima kasih kepada Soaku .
Membutuhkan
⎕IO←0
yang default pada banyak sistem. Anjuran untuk input0
atau1
.Bergantung pada versi (9.0 hingga 16.0, dengan versi minor) itu output dalam bahasa Inggris, Spanyol, Portugis, Jerman, Vietnam, Perancis, Turki, Italia, Polandia, Sunda, Filipina, Yoruba, Uzbekistan, atau Rumania, meskipun tanpa diakritik.
⎕AV⍳'ëáàÆÅÄòðÓÈÇ'
dalam indeks A tomic V ector (151 142 141 133 132 131 122 121 111 102 101 96)((
...)⍳
...)
cari posisi⍎
yang dievaluasi⎕D∩⍨
persimpangan D igits dan4↑
empat * karakter pertama dari1⊃
elemen kedua dari#⎕WG'APLVersion'
nomor versi(
...)⊃
lalu gunakan itu untuk memilih di antara⎕⊃
elemen input'th (0: pertama; 1: detik) daris¨
fungsi s (yang akan kita definisikan segera) diterapkan untuk masing-masing⌽
kebalikan dari(s←{
...})
s diterapkan ke - di mana s didefinisikan sebagai1↓¨
karakter pertama turun dari masing - masing⍵⊂⍨
argumen dipartisi di mana⍵=
karakter argumen sama dengan⊃⍵
karakter pertama argumen';,true,adevarat,
...,falsch',
string ini diawali dengan18⍴',falso'
delapan belas karakter diambil secara siklikal dari string itu* Sejak versi 12.1, nomor versi menyertakan nomor bangun, jadi dengan meningkatkan jumlah karakter yang diambil dari string ini, mudah untuk mencakup semua 131 bahasa skrip Latin .
sumber
prawdziwy
keprawda
danfalszywy
kefalsz
. Formulir yang lebih pendek lebih pas di sini dan memberi Anda skor yang lebih baik.6 bahasa, 169 byte
Diharapkan
0\n
atau1\n
sebagai input, dan mencetak kata dalam:vals/waar
),faux/vrai
),false/true
),usant/sant
),usand/sand
),falso/vero
).sumber
print
pernyataan itu!Semua Jamur, 6 bahasa, 146 byte
💥 Sekarang dalam 3D! 💥
Untuk lebih jelasnya saya telah memisahkan dua bidang kode sehingga Anda dapat melihat bagaimana mereka berlapis. Pada disk, dua blok ini akan dipisahkan dengan karakter umpan formulir di akhir baris di atas.
Aturan mengatakan versi berbeda dari suatu bahasa dihitung sebagai bahasa yang terpisah, jadi ini adalah enam versi Funge / Befunge. :)
Berkat Dennis , semua versi Befunge sekarang dapat diuji secara online di TIO . Namun saat ini tidak ada implementasi yang berfungsi dari varian Unefunge dan Trefunge, jadi bagi mereka saya akan merekomendasikan Rc / Funge .
A
diabaikan di Befunge 93 dan 96, tetapi merupakan perintah Tentang Wajah di 97 dan tidak didukung di 98 dan karenanya mencerminkan. Ini berarti bahwa 93 dan 96 mengikuti kev
bawah sementara 97 dan 98 membungkus sisi berlawanan dari lapangan bermain.Di Befunge 96 a
;
diikuti oleh spasi pada awal baris menandainya sebagai komentar, sehingga garis dilewati dan penerjemah melanjutkan ke>
pada baris ketiga. Namun pada 93, penerjemah mengikuti>
baris kedua.Jalan 97/98 berlanjut pada baris pertama dari kanan ke kiri, melompati bagian di dalam
;
penanda komentar, menjembatani&
perintah, akhirnya mencapai urutan tikungan-Uv<^<
. Di Unefunge, perubahan arah ini tidak didukung sehingga penerjemah membalikkan arah dan mengeksekusi bagian yang sebelumnya dilewati dalam komentar. Di Befunge / Trefunge terus ke kiri.Di Befunge 97
m
perintah tidak didukung dan dengan demikian dilewati, sehingga penerjemah melanjutkan sepanjang baris pertama. Dalam 98 itu hanya 3D sehingga tercermin dalam Befunge (2D) dan penerjemah mengikutiv
ke kanan sampai ke baris keempat. Di Trefunge (3D) itu adalah cabang High-Low yang mentransfer level sepanjang sumbu z ke bidang kedua.Jadi selain dari kasus Unefunge, kami meminta setiap versi mengumpulkan pasangan string mereka dari baris terpisah sebelum diarahkan ke salah satu
&
perintah untuk mendapatkan input pengguna. Jalur kode tersebut kemudian bergabung bersama melalui^
perintah di kolom kedua, mengarahkan program mengalir ke atas melalui bagian atas playfield, membungkus lagi ke bawah.Akhirnya kami memiliki
^_^
urutan yang memutuskan jalur mana yang harus diikuti berdasarkan input pengguna. Jika 0 , kita langsung ke urutan output (>:#,_
) menuliskan string yang salah . Jika 1 , pertama kita jalankan>_
yang menghapus string pertama dari stack, dan dengan demikian menampilkan string yang benar .sumber
5 bahasa, 249 byte
Catatan: the
\r
dan\e
merupakan karakter baris-feed dan melarikan diri literal, tetapi\x5b
harus seperti apa adanya jika tidak Ruby mengeluh tentang kelas karakter di regex.Agak terlambat ke pesta, dan bukan pemenang dengan cara apa pun, tapi aku mulai mengerjakan polyglot untuk tantangan ucapan syukur dan merasa mungkin agak terlambat jadi mengubahnya menjadi ini!
Penjelasan
Python:
True
/False
Di sini kita mengatur
q
untuk0//1
yang0
, maka kita memiliki'''
string yang berisi sebagian besar kode lain, menyimpan array yang berisiFalse
danTrue
dan indicies0
dan1
masing-masing, menetapkan masukan untukb
(yang harus0
atau1
untuk menandakanFalsy
danTruthy
) kemudianprint
padab
indeks tha
, menunjukkanFalse
atauTrue
.Ruby:
Vrai
/Faux
Seperti halnya skrip Python, kita mengatur variabel
q
, tetapi dalam Ruby ini diatur ke0 / /1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord
, karena Ruby memecah ini0/
sebagai "nol dibagi-oleh" dan berikut ini/
sebagai "awal regex literal". Dengan menggunakan literal ini saya dapat menyembunyikan kode PHP dan memulai Python'''
. Kami harus menambahkan.to_s.ord
karena operan yang tepat/
harus aFixnum
. Setelah ini, kita mendefinisikan fungsiinput()
dan variabelTrue
danFalse
untuk memuat rekan-rekan Prancis mereka dan akhirnya memulai string'
yang berlanjut ke baris berikutnya. Akhirnya kami membuat arraya
yang berisi"Vrai"
dan"Faux"
dan memilihnya menggunakaninput()
nomor ed0
atau1
.Perl:
Waar
/Vals
Dalam Perl, the
q=..=
,q+...+
danq-...-
blocks dikutip literal menggunakan pembatas yang tidak biasa, dalam kode di atas saya telah menggantinya dengan'...'
. Sebagian besar kode terkandung dalam string literal, tetapi kami mendefinisikansub a
(yang berisi<><
!) Yang memeriksa apakahSTDIN
kurang dari1
, mengembalikan salah satuWaar
atauVals
. Yangprint(a[b])
sebenarnyaprint
adalah hasil dari memanggilsub
a
dengan dan argumen[b]
yang merupakan ArrayRef yang berisi kata kosongb
.JavaScript:
Vero
/Falso
Baris pertama sebagian besar dikomentari oleh divisi
0//1
(//
adalah komentar baris dalam JavaScript) jadi kami hanya mengaturq
untuk0
. Garis penawaran berikutnya dengan pemetaan fungsi JS untuk nama Python dan pengaturan variabelTrue
danFalse
menjadi string Italia, akhirnya kami jalankan sama dengan kode Ruby, menetapkan ke array dari kata Italia dan memilih menggunakaninput
dari0
atau1
.PHP:
Ekte
/Falsk
Karena PHP hanya mengeksekusi kode antara
<?...?>
semua yang lain adalah apa adanya, jadi kode kami di sini hanya mencetak umpan baris (untuk membawa kami kembali ke awal baris saat ini) dan urutan pelarian ANSI untuk menghapus hingga akhir saat ini baris, diikuti oleh salah satuEkte
atauFalsk
tergantung pada apakah input char (0
atau1
) benar atau salah.sumber
Pyth, Python - 28 byte
sumber
.q
dan menambahkan byte;
pada akhirnya.C #, Java, 104 Bytes
Golf:
Tidak Disatukan:
Uji:
C #
Jawa
Penjelasan:
Ketika memanggil
ToString()
atautoString()
pada Boolean di C # dan Java masing-masing, C # mencetak string dengan huruf kapital pertama,True
danFalse
, tetapi Java mencetak semua dalam huruf keciltrue
danfalse
.sumber
2 bahasa, 60 byte
Bahasa adalah:
true
false
waar
onwaar
Catatan: Ada byte UTF-8, bukan Jelly byte.
sumber
Lua / JavaScript, 68 byte
Tidak tahu mengapa saya bermain golf; Saya hanya merasa seperti itu.
sumber
JavaScript / BF
Dalam kedua bahasa ini, tidak ada input yang dianggap salah dan input apa pun dianggap benar.
Ketika Anda melihat struktur program diputar 90 derajat ke kiri, simbol BF terlihat seperti menara di kota :)
Coba online (testcase BF benar)!
Cobalah online (BF false testcase)!
Penjelasan
JavaScript
Jika
prompt
benar (yaitu tidak kosong karenaprompt
mengembalikan string), outputtrue
, atau keluaran lainfalse
.BF
Output
sand
(Denmark untuk true) jika ada input, atau outputusand
(false) jika input kosong.TL; DR Jika input tidak kosong (yaitu benar), jangan output apa pun. Jika input kosong (mis. Salah), output
u
. Kemudian, terlepas dari apakah input itu benar atau salah, outputsand
.Saya telah mengambil inspirasi dari https://esolangs.org/wiki/Brainfuck_algorithms yang dengannya saya membangun logika program saya.
Ambil input. Jika input tidak kosong, tambahkan memori, sebut saja sel ini "Sel A". Akhiri jika-pernyataan
Membandingkan nilai "Sel A" dengan
0
. Jika mereka sama, biarkan "Sel B" menjadi1
, atau biarkan saja0
.Jika "Sel B" adalah 1, maka output
u
. Tutup jika-pernyataanKeluaran
sand
sumber
u
bersyarat, bukans
?u
kondisionals
kondisional; bisakah Anda memperbaikinya untuk kejelasan? Jawaban yang bagus.If input is empty (ie false), output `s`.
Saya pikir itu adalah bagian yang membuat Alex L. bingung.