Tantangan:
Dalam bahasa pemrograman pilihan Anda, jangan masukan dan keluarkan nama bahasa pemrograman Anda.
Cukup adil, bukan?
Pembatasan:
- Anda tidak dapat menggunakan karakter apa pun yang termasuk dalam nama bahasa pemrograman Anda dalam kode Anda. Misalnya, jika saya menggunakan Batch, saya tidak boleh menggunakan karakter 'B' 'a' t '' c '' h 'dalam kode saya. Perhatikan bahwa ini peka huruf besar-kecil. Saya masih bisa menggunakan char 'b' karena berbeda dari 'B'.
- Anda dapat memiliki "output sampah" sebelum atau setelah nama bahasa
- Nomor versi tidak dihitung sebagai bagian dari nama bahasa. Misalnya, saya bisa menggunakan angka 3 dalam kode dalam jawaban saya jika itu dalam Python 3
- Output dari nama bahasa pemrograman tidak peka huruf besar-kecil.
- Brute-memaksa semua kombinasi huruf yang mungkin dan berharap Anda mendapatkan nama bahasa Anda dilarang.
Contoh keluaran: (katakanlah bahasa pemrograman saya disebut Bahasa) (✔ jika valid, ✖)
Language
✔Body language is a type of non-verbal communication in which physical behavior, as opposed to words, is used to express or convey information. Such behavior includes facial expressions, body posture, gestures, eye movement, touch and the use of space.
✔Language 2.0 - © 1078 AD some company
✔foobar
✖
Ini adalah kode-golf sehingga kode terpendek menang.
--version
tidak diizinkan"?Jawaban:
Output ke STDERR
Outputing ke STDERR sekarang di + 33 / -21 sebagai default yang diizinkan, yang positif tetapi diperebutkan. Ini adalah jawaban CW untuk mengumpulkan jawaban yang baru saja memanggil kesalahan dalam bahasa di mana pesan kesalahan menyertakan nama bahasa.
Haskell, 1 byte
Kesalahan:
Lua, 1 byte
Kesalahan:
(nama file tidak penting)
Batch, 1 byte
Kesalahan:
tinylisp, 5 byte
Kesalahan:
R, 1 byte
Kesalahan:
Bytecode Java, 0 byte
Kesalahan:
Groovy, 1 byte
Catatan yang
a
bisa diganti dengan karakter lainKesalahan:
MATLAB, 1 byte
Kesalahan:
PHP, 3 byte
Kesalahan:
CJam, 1 byte
Kesalahan:
Ranting, 2 byte
Ranting adalah bahasa templat yang ditulis dalam PHP. Mungkin saja ini poliglot.
Kesalahan:
Pesan bervariasi tergantung pada program mana yang Anda pilih.
SILOS , 2 byte
Cobalah online! Sepele meminta perilaku tidak berdokumen. Silo adalah nama bahasa.
Python, 6 byte
Karena pembatasan karakter tidak peka huruf besar-kecil, dan hasilnya tidak harus dalam huruf yang benar, ini adalah jawaban yang valid. Pesan kesalahan yang dihasilkannya adalah seperti ini:
Cobalah online! (keluaran ke tab 'debug')
JavaScript, 10 byte
Ini menghasilkan pesan kesalahan berikut atau serupa di semua lingkungan:
QBIC , 6 byte
Dalam 6 byte, kita bisa menempatkan kesalahan yang ditemui QBIC: 9 di layar, menandakan kesalahan di luar batas.
ForceLang, 2 byte
Kesalahan yang dihasilkan:
Pip, 5 byte
(Catatan: ini berfungsi dalam versi saat ini pada tulisan ini, 0.17.09.01 . Tidak ada jaminan penerjemah tidak akan berubah untuk menangani kesalahan ini secara berbeda di masa mendatang.)
Mencoba melakukan regex yang cocok dengan pola yang secara sintaksis tidak valid. Kesalahan yang dihasilkan akan terlihat seperti ini:
Stax, 2 byte
Kesalahan:
zh
juga berfungsi.tinta, 1 byte
~
pada awal baris menandai bahwa baris adalah pernyataan yang akan dieksekusi, bukan teks yang akan dicetak. Pada versi TIO inklecate mana saja yang digunakan, jika tidak ada setelah~
, penerjemah lumpuh dengan kesalahan berikut:sumber
<??
akan lebih efektif dan tidak dapat dinonaktifkan.SmileBASIC, 11 byte
Setara dengan
SPSET 0,1474
. Set sprite 0 ke definisi 1474, yang merupakan logo SmileBASIC.sumber
MATL , 1 byte
Output melalui STDERR, yang diizinkan secara default .
Output dari kompiler offline adalah
Atau coba online! (perluas bagian "debug").
sumber
X
atauZ
. Ini karenaX
,Y
atauZ
merupakan awalan dari nama fungsi dua-char, sehinggaY
dengan sendirinya tidak validR, 1 byte:
T
adalah alias untuk konstantaTRUE
. Jadi output untuk di atas adalah:Karena sampah diperbolehkan di sekitar nama, "R" di sana adalah nama bahasa.
( Seperti disebutkan dalam komentar di tempat lain , cukup banyak huruf tunggal dan banyak mesin terbang akan bekerja dengan baik karena mereka memicu pesan "Kesalahan: ...", yang berisi "r".)
sumber
HTML,
2420 byteHTML, 16 byte
Seperti yang ditunjukkan oleh @Bob , browser modern akan mengenali entitas HTML tanpa titik koma, meskipun secara teknis HTML itu tidak valid. Tentu saja, ini berlaku untuk kode golf.
HTML, 4 byte
Dan tentu saja, jawaban yang tidak menarik.
Juga, lihat jawaban CSS saya .
sumber
HTML
. Anda dapat menyimpan empat karakter tambahan dengan menjatuhkan titik koma, dengan mengorbankan HTML yang secara teknis tidak valid (tetapi masih berfungsi di peramban modern).HTML
dihitung?html
harus valid, mengurangi skor dengan 12 byte.Vim, 0 byte
Saat Anda memulai Vim, editor menampilkan layar splash yang terlihat seperti ini:
Anda bisa melihatnya di
Vim
sini:Jawaban sebelumnya:
Vim, 1 byte
Di Vim 8, menekan akan ditampilkan
Type :quit<Enter> to exit Vim
di baris terakhir. Saya tidak sepenuhnya yakin apakah ini penting.sumber
Python, 15 byte
Python 2 (15)
Ini merangkai string menggunakan oktal
150
yangh
dan"elp()"
dan berjalan hasilnya. Ini mencetakhelp()
perintah yang mengatakan"Welcome to Python 3.5's help utility!"
, memenuhi persyaratan.Python 3 (17)
Cobalah online!
sumber
help
diperhitungkan, ini hanya bekerja di lingkungan REPL.p
diizinkan tapiP
tidak. Aturan 1.C, 0 byte.
Cobalah online!
sumber
c
berasal dari sumber yang sangat tergantung pada implementasi. Akan lebih baik jika Anda setidaknya memprovokasi pesan yang berisic
beberapa output boilerplate.Hah ?, 0 byte
(tidak, tidak ada dalam blok kode itu)
Bahasa ini dinamai untuk outputnya, jadi ...
Dalam implementasi yang saya periksa , penerjemah mengambil mod panjang 8 setiap baris file yang diberikan, dan beralih tergantung pada hasilnya. Untuk nol, itu dicetak
Huh?
. Karena menghapus garis baris baru, Anda juga bisa melakukan versi 1 byte (\n
).Perhatikan bahwa ini bukan keluaran ke stderr atau casewapping atau tipuan lainnya. Hanya saja penerjemah yang sangat bingung akhirnya berguna.
sumber
V , 2 byte
Cobalah online!
Jawaban yang jelas adalah:
Cobalah online!
Yaitu "Masukkan huruf 'v', dan ganti huruf". Namun, karena Anda mengizinkan keluaran sampah sebelum / setelah nama bahasa, ini juga berfungsi.
The
¬
perintah mengambil dua karakter untuk masukan, dan memasukkan setiap karakter ASCII antara mereka. Jika kami tidak menyediakan karakter kedua, secara otomatis defaultnya adalahÿ
(ASCII 0xff), jadi program ini memasukkan setiap karakter dalam pengkodean latin1 antaraU
danÿ
.sumber
brainfuck , 54 byte
Keluaran
brainfuck
, dengan asumsi pita 8-bit terbuka di sebelah kiri. Cobalah online!Seperti biasa, sebagian kredit masuk ke @ primo Halo, Dunia! jawaban .
Alternatif dengan casing berbeda
Brainfuck (62 byte):
BrainFuck (68 byte):
sumber
MATLAB, 3 byte
Outputnya adalah sebagai berikut. Info yang tidak relevan telah digantikan oleh
[...]
). Beberapa bagian dari output dapat berubah tergantung pada versi, kotak alat yang dipasang, dll.sumber
Octave
, jadi Anda tidak dapat menggunakanv
dane
.Python,
2753494845 byte-3 byte dari @ wizzwizz4
Mencetak teks berikut, yang memiliki "Python" di baris pertama.
sumber
HELP()
atauHELP(HELP)
lebih pendek.import this
.Python 2 (1 byte)
keluaran...:
sumber
0xa0
(nbsp) atau pada dasarnya byte tinggi lainnya yang Anda suka dan Anda akan mendapatkan kesalahan yang sama!> <> ,
1210 byteIni akan terus mencetak> <> sampai juru bahasa kehabisan ruang.
Cobalah online!
Versi 12 byte di bawah ini untuk mereka yang suka keluaran bersih. Direkomendasikan oleh Aaron (tidak ada kesalahan, 1 output)
sumber
"-o-o-o;_!\ _!
JAWA, 1 byte
Output ke stderr adalah:
sumber
CSS, 25 byte
Perhatikan bahwa markup tambahan ditambahkan ke cuplikan Stack Overflow, menyebabkan "CSS" ditampilkan lebih dari sekali. Buka
.html
file dengan kontenuntuk melihat hasilnya sebagaimana dimaksud.
sumber
bash CLI, 9
Jika Anda menginginkan skrip aktual dan bukan hanya perintah di baris perintah interaktif, maka Anda dapat melakukan ini:
bash, 13
Keluaran
/bin/bash
sumber
echo $0
harus bekerjax $0
berfungsi, dengan asumsi tidak ada executable yang disebut x pada path. Dalam hal ini gantilah huruf, digit, atau karakter non-khusus lainnya.$'ec\x68o' $0
menyembuhkan detail itu.C, 15 Bytes
Disusun C pada mesin Linux dengan lokal Jerman:
main(){main();}
Ini akan berjalan ke stack overflow dan mencetak
Speicherzugriffsfehler
(bahasa Jerman untuk kesalahan Segmentasi) pada stderr.sumber
dc, 6
Keluaran
dc
.Cobalah online .
sumber
Pip , 8 byte
Mengambil karakter
I
danWR
aps dalamC
hr (80
), menghasilkanPIP
.Cobalah online!Menggunakan
I
terasa agak seperti curang, jadi di sini adalah dua solusi 9-byte yang tidak menggunakanPpIi
:Keduanya keluaran
pip
. Saya sangat senang dengan yang kedua:Untuk kapitalisasi yang tepat, kami membutuhkan solusi 10-byte :
Cara kerja ini dibiarkan sebagai latihan untuk pembaca. ; ^)
sumber
C #,
6067 bytesumber
\u0043
danConsole
tetapi tidak bisa menggunakanC
sesuai aturan pertanyaan. Dalam C # Anda dapat menggunakan urutan escape Unicode di pengidentifikasi._=>System.\u0043onsole.Write("\x43\x23");
brainfuck, 105 Bytes
Cobalah online di sini
sumber
---
dalam penurunan harga Anda?R , 11 byte
Cobalah online!
sumber
version$l
9 byteversion
sudah cukup (7 byte)J, 2 byte
a.
mengembalikan alfabet bahasa J - daftar bawaan semua byte.Dokumen asli saya: 4 byte
Sepertinya ini cukup keren bagi saya. Root kuadrat (
%:
) dari negatif 1 (_1
) adalah i (0j1
).sumber
a.
. Mencetak alfabet, yang jelas termasuk 'J'. Pasti tidak sekeren: /BASIC (ZX Spectrum),
42 bytedicoret 4 masih teratur 4
Disimpan 2 byte berkat @ShaunBebbers.
Catatan: Di set karakter ZX Spectrum, byte ini ditampilkan sebagai
Ketika Anda memasukkan ini, Spectrum dimulai dengan menguraikan nomor opsional diikuti oleh garis kode. Biasanya nomor baris inilah
1..9999
yang menyebabkan kode ditambahkan ke program yang disimpan. Namun, jika tidak ada nomor baris yang diberikan maka kode dieksekusi segera sebagai gantinya. Sayangnya bug dalam Spectrum berarti kesalahan pada nomor baris nol tanpa nomor baris sama sekali, tetapi masih mencoba untuk mengeksekusi nol sebagai bagian dari baris kode, yang ilegal, sehingga menyebabkan kesalahan.Versi 4-byte sebelumnya menghasilkan kesalahan sejati daripada mengandalkan bug juru bahasa:
Catatan: Di set karakter ZX Spectrum, byte ini ditampilkan sebagai
output yang mana
karena string kosong bukan ekspresi numerik yang valid. (Tentu saja saya dapat menggunakan pernyataan apa pun yang menggunakan bilangan bulat tunggal.) Jika jawaban ini tidak dapat diterima, maka untuk 6 byte Anda dapat menulis sebuah program yang terdiri dari satu baris dengan salah satu kata kunci yang tidak menerima argumen, kemudian gunakan
POKE
untuk mengganti dengan kata kunci ilegal, lalu coba keRUN
program.sumber
0 REM
menghasilkan kesalahan yang samaC
2420 Bytes (Dentang 3.8.1)Terima kasih kepada @squeamish ossifrage karena membantu saya menghemat 4 byte.
sumber
putchar(67);
?printf('c')
juga valid? Anda tidak diizinkan menggunakan huruf besar "C", tetapi Anda huruf kecil, dan hasilnya tidak peka huruf besar-kecil.67
lebih pendek dari'c'
:-)printf
perluchar *
jadi saya harus menggunakan""
Perl 5, 36 byte (35 +1 untuk
-E
)Jalankan dengan
-E
bendera.The variabel
$^X
adalah path ke executable yang menjalankan program saat ini. Karena penerjemah Perl dipanggilperl
, maka kita perlu membuatnya menjadi huruf besar huruf pertama. Tetapiucfirst
fungsi tersebut mengandungr
, yang tidak diizinkan, jadi kita harus menggunakan\U
dan\E
beralih , yang mengaktifkan dan menonaktifkan konversi huruf besar.Kami tidak dapat menggunakan
/r
pengubah untuks///
mengembalikan string yang diubah karenar
tidak diizinkan.Penting untuk mengetahui bahwa nama bahasa pemrograman Perl adalah Perl , dan nama penerjemahnya adalah perl dengan huruf kecil
p
. Tidak ada PERL .sumber
perl -v
memenuhi kendala tantangan, tapi ini jauh lebih menarik :) Meskipun itu membuat asumsi yang tidak berpegang pada semua sistem (misalnya$^X
adalah/home/foo/.plenv/versions/5.16.3/bin/perl5.16.3
untuk saya, tetapi bisa juga menjadi/home/foo/python
jika saya dipelintir seperti itu ).perl -v
bukan apa-apa di Perl. Jadi saya pikir itu tidak masuk hitungan. Tapi saya pikir ada cara yang lebih mudah. Tentang sistem yang berbeda, saya pikir kita bisa memperbaikinya dengan sedikit sihir regex.perl -E'say$^X'
.-E'say`$^X -v`'
? Itu program yang tak terbantahkan.Keempat, 5 byte
Cobalah online
Mencetak daftar setiap kata dalam bahasa.
Forth
kebetulan ada dalam daftar (kata pertama pada baris 125), meskipun saya tidak tahu apa fungsinya.sumber
R, 10 byte
Output:
Cukup verbose hanya untuk dimiliki
R
nama yang muncul kan?Dari komentar @ djhurio pada jawaban ini menggunakan R,
version
lakukan triknya juga.sumber
"r"
? Atau tergantung pada "Anda dapat memiliki" keluaran sampah "yang ketat sebelum atau setelah nama bahasa." Anda juga bisa melakukannyaT
.r
atauR
, jadi pendekatan lain adalah output ke STDERR melalui kesalahan sintaks.)
outputError: unexpected ')' in ")"
, yang berisir
.