Karena Halloween akan datang, saya pikir saya akan memulai tantangan golf kode kecil yang menyenangkan!
Tantangannya cukup sederhana. Anda harus menulis sebuah program yang menghasilkan trick
atau treat
.
"Memelintir?" Anda mungkin bertanya. Baiklah saya jelaskan:
Program Anda harus melakukan hal berikut:
- Dapat dikompilasi / runnable dalam dua bahasa yang berbeda. Versi berbeda dari bahasa yang sama tidak masuk hitungan.
- Ketika Anda menjalankan program dalam satu bahasa itu harus keluar
trick
dan yang lain harus keluartreat
. Kasing tidak relevan dan melapisi string dengan karakter spasi putih diizinkan (lihat contoh). - Ini adalah kode-golf , jadi solusi dengan byte paling sedikit menang.
Beberapa penjelasan:
Output yang valid (Hanya untuk kata-kata tidak untuk menjalankan kode dalam dua bahasa. Juga menambahkan tanda kutip untuk menandakan awal atau akhir dari output. Jangan memasukkannya dalam solusi Anda!):
"trick"
"Treat"
" TReAt"
"
tRICk "
Output tidak valid :
"tri ck"
"tr
eat"
"trck"
Saya tertarik untuk melihat apa yang dapat Anda temukan! Selamat Golf!
Saya ingin mencatat bahwa ini adalah tantangan pertama saya jadi jika Anda memiliki saran tentang pertanyaan ini, silakan tinggalkan mereka dalam bentuk komentar.
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Misalnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Jawaban:
2sable / pl , 8 byte
Kedua program telah diuji secara lokal dengan file 8 byte yang sama, jadi ini adalah polyglot yang tepat.
2sable: trik
Ini adalah program dalam kode halaman 1252 .
Cobalah online!
pl: obati
Ini adalah program dalam kode halaman 437 .
Cobalah online!
Bagaimana itu bekerja
2sable: trik
pl: obati
sumber
Python / Windows Batch, 25 byte
Semuanya setelah # ditafsirkan sebagai komentar oleh python, sedangkan || adalah OR dalam batch, mengatakan bahwa ketika perintah sebelumnya gagal, jalankan yang ini.
Saya juga suka menggunakan ATAU karena hampir bertuliskan "trick or treat" :)
sumber
2>nul
.Spasi / Starry, 135 byte
Ini langit malam yang cerah di Halloween!
Perhatikan bahwa spasi putih pada baris kosong mungkin tidak dipertahankan jika Anda menyalin dari kode di atas
Output spasi putih "TRIK". Cobalah secara Online!
Output berbintang "TREAT". Cobalah secara Online!
Penjelasan
Penuh bintang
Starry mengabaikan semua tab dan baris baru sehingga kode yang dibacanya adalah sebagai berikut
Namun, mendorong nilai sangat mahal dibandingkan dengan operasi stack dan aritmatika di Starry. Kode dimulai dengan mendorong dan menduplikasi 4 dan melakukan sejumlah operasi di atasnya dan dengan 2 dan 1 didorong kemudian menghasilkan semua nilai ASCII yang diperlukan.
Kode Beranotasi
Ruang putih
Seperti namanya, Whitespace hanya mem-parsing tiga karakter spasi putih — spasi, tab, dan baris baru. Tidak seperti Starry, yang Whitespace hanya mendorong nilai-nilai ASCII dari
T
,R
,I
,C
, danK
dan cetakan mereka.Kode Beranotasi
Jalinan push dan cetakan dipilih hanya berdasarkan alasan estetika karena tidak mempengaruhi jumlah byte.
sumber
Linux ELF x86 / DOS .COM file, 73 byte
Sumber NASM:
Ini menggunakan fakta bahwa header ELF dimulai dengan 7F 45, yang, ditafsirkan sebagai kode x86, adalah lompatan.
Bagian yang relevan untuk DOS .COM:
sumber
evil / ZOMBIE , 109 byte
Jawaban seram lainnya!
The
ZOMBIE
kode mendefinisikanvampire
bernamaxf
yang tugasnya hanyaf
diaktifkan di instanciation dan akan menampilkantrick
sekali sebelum dinonaktifkan olehstumble
.say
Panggilan lain adalah kode mati (bagaimana sesuai!) UntukZOMBIE
, tetapi berisi sebagian besarevil
kodeSebab
evil
,xf
namanya adalah panggilan untuk melompat ke yang berikutnyaj
, yang mendahuluizuueeueeawuuwzaeeaeeaeawuuuuwzuueeueeaw
erangan zombie yang kerajinan dan hasiltreat
. Kode berikut dijalankan (huruf kecil) atau diabaikan tetapi karena tidakw
ada output yang harus dihasilkan.sumber
Python / Perl, 28 byte
Penjelasan
Karena
[]
ArrayRef di Perl, itu benar, tetapi array kosong di Python, oleh karena itu palsu.sumber
print({}and"trick"or"treat")
dalam Python / Lua.{}
merupakan HashRef!print ([]and"trick"or"treat")
print({}and"trick"or"treat")
!PHP / JavaScript,
3230 byteMenampilkan
trick
dalam PHP dantreat
JS.NaN
Konstanta yang tidak diketahui secara implisit dikonversi ke string oleh PHP, menjadikannya benar. Itu salah di JS.Metode alternatif, 38 byte
Operator ternary adalah asosiasi kanan dalam JS:
Dan asosiatif kiri dalam PHP:
sumber
HTML / HTML + JavaScript, 53 byte
treat
adalah konten teks dokumen dalam HTML.Jika JS diaktifkan, itu akan menggantikan konten HTML dengan
trick
.sumber
document.write()
sebagai gantinya. -8 bytedocument.write
tidak akan mengganti output HTML tetapi menambahkannya.C / Java 7,
165155128123122120103 byte// \ membuat baris berikutnya juga komentar dalam C tetapi merupakan komentar satu baris reguler di Jawa, sehingga Anda dapat membuat kode abaikan dimaksudkan untuk Java dan dengan menambahkan / * di baris kedua Anda dapat membuat komentar untuk Java yang diuraikan sebagai kode oleh C.
Sunting: Saya sedikit meningkatkannya dengan mengatur ulang baris dan komentar.
Sunting2: Saya melakukan lebih banyak reorganisasi dan mempersingkat bahkan lebih.
Sunting3: Saya menambahkan koreksi yang disarankan oleh BrainStone untuk menghapus 5 byte, terima kasih :)
Sunting4: Satu baris baru ternyata tidak perlu jadi saya menghapusnya.
Sunting5: Saya mengubah printf untuk dimasukkan.
Sunting6: Saya menambahkan koreksi yang disarankan oleh Ray Hamel.
sumber
#include<stdio.h>
dengan#include<cstdio>
. Tidak banyak tetapi satu byte adalah satu byte. Dan juga menghapusint
infront ofmain
safe 4 byte.int
tersirat oleh C dan C ++String[]s
.Jolf + Chaîne, 12 byte
Karena Chaîne tidak dapat menerima file untuk diunggah dengan penyandian, saya menganggap UTF-8. (Jika saya bisa berasumsi ISO-8859-7, ini akan menjadi 11 byte, tetapi itu tidak adil.)
Dalam Chaîne,
«
mulai komentar, dan sisanya dicetak kata demi kata. Di Jolf,«
mulai string. Untungnya,trick
tidak ada yang berbahaya (10; range(input, parseInt(input))
pada dasarnya), dantreat
dicetak.Coba Jolf di sini!
Coba Chaîne di sini!
Keduanya berfungsi di browser saya (firefox, versi terbaru), tetapi hal yang sama tidak dapat dikatakan untuk browser lain.
sumber
tr
.tr
dapat digunakan kembali dalam golf apa pun - ini adalah sepotong kecil informasi yang akan membutuhkan setidaknya seorang operator untuk menyandikannya dalam bahasa golf, kemudian kondisional khusus bahasa. Bahkan mungkin panjangnya sama, atau lebih lama. Namun, itu hanya dugaan saya;)#hell / Penderitaan , 43 byte
Di
><>
mana-mana, apa ini, tantangan April Mop? Inilah jawaban dengan bahasa bertema yang tepat.#hell
adalah subsetLUA
yang untungnya menerimaio.write
panggilan output. Kami menggunakanLUA
's--
komentar sehingga hanya menjalankan fragmen ini.Agony
adalahBrainfuck
turunan, yang memiliki kekhususan untuk memiliki kode dan memori yang bekerja pada rekaman yang sama. Baris pertama hanya mencetak 5 karakter (10 sel) dari akhir segmen kode, di mana saya dikodekantreat
sebagaiAgony
perintah.LUA
Pembukaan komentar--
memodifikasi nilai sel yang tidak digunakan.sumber
Cubix / Hexagony , 31 byte
Trick it out! Perlakukan online!
Halloween bertema ? Perhatikan fakta-fakta mengerikan tentang bahasa-bahasa ini dan kode:
=v=
senyum pada Anda yang bertindak tanpa ops dalam kodeMari kita menggali misteri protokol komunikasi 31-byte dimensi dan teror ...
menipu
Ketika kode dilipat atau dibuka sendiri ... Yaitu
cubified
, tata letak terlihat seperti ini:Dan bagian utama adalah bagian ini di tengah:
Ini mendorong
k,c,i,r,t
ke tumpukan dano
output dan;
muncul dalam satu lingkaran yang dibatasi oleh reflektor dan?
yang memandu Anda tergantung pada nilai di atas tumpukan ...memperlakukan
Tiba-tiba, kode tersebut berubah dari kubus menjadi Hexagon. (Bayangkan itu)
Dan bagian utama adalah bagian ini:
Ini berjalan
t;
yang mencetakt
dan mengenai cermin dan mengubah arahnya ke NW mulai dari sudut SE dan menyentuh cermin lain. Ini berjalanr;
dan membungkus kee;_a
dan]
membawanya ke Instruction Pointer 1 yang dimulai pada sudut NE menunjuk SE dan hits/
yang mencerminkan secara horizontal;
saat itut
.Kemudian membungkus untuk
=
,;
dan@
berakhir kekacauan.Jadi ... Apa yang sedang
_
dilakukan di sana?Mengapa ada di dalam
t
e
a
(3 huruf pertama dalam kode)?Inilah akhir cerita -
tidak melakukan apa - apa .
Apakah ini terdengar seperti akhir dari cerita horor?sumber
SQL / Javascript, 54 byte
Pendekatan yang sama dengan jawaban QB / JS saya : Baris pertama memiliki pernyataan SQL, baris kedua memiliki 'komentar' untuk SQL dan NOP untuk JS. Kemudian, kita mendefinisikan
select
pernyataan SQL sebagai fungsi JS yang valid.sumber
/Brainf..k/, 143 + 3 = 146 byte
Jawaban ini membutuhkan
-A
flag to output di ASCII untuk Brain-Flak dan untungnya Brainfuck tidak peduli dengan flag itu sehingga tidak mempengaruhi output di Brainfuck.Cobalah secara Online!
Cobalah secara Online!
Bagaimana ini bekerja?
Satu-satunya tumpang tindih antara sintaks Brain-Flak dan Brainfuck adalah karakter
<>[]
. Untuk brain-flak ini sebagian besar berarti program harus memastikan jumlah switch stack yang merata<>
. Dan untuk Brainfuck ini berarti kita harus menghindari loop tak terbatas yang disebabkan oleh penggunaan[]
monad.Kode Brain-Flak adalah sebagai berikut:
Selain dari
[<<...>>]
bit di tengah dan<[<>]<>[<>]<>>
di akhir kode ini cukup setara untuk kursus sejauh program Brain-Flak pergi. Negatif di sekitar nol ([<...>]
) ada untuk membuat loop untuk Brainfuck. Bagian dalam<...>
digunakan untuk memindahkan Brainfuck ke sel kosong sebelum bertemu[][][][]
yang akan berulang tanpa batas.Kode Brainfuck adalah sebagai berikut:
Selain bit-bit yang disebutkan di atas, ini juga merupakan program yang cukup standar, jadi saya akan berikan Anda detailnya.
sumber
/brainf..k/
, jadi Anda harus menggunakan format tajuk yang sama seperti orang lain.For brain-flak this mostly means the program has to ensure an even number of stack switches
Apa kamu yakin akan hal itu? Seharusnya tidak masalah karena<>
NOP ada di brainfuck> <> / Memancing , 38 byte
Demi membuat a
><>
/Fishing
polyglot.Ini adalah potongan
Fishing
kode pertama saya setelah bermain untuk waktu yang lama><>
.Kesan pertama saya: seperti di alam, nelayan memiliki kemampuan fisik kurang dari doanya, tetapi menebusnya dengan alatnya!
Di sini kodenya sangat sederhana:
><>
hanya akan mengeksekusi baris pertama, di mana_
ada cermin vertikal dan tidak berpengaruh karena ikan mulai berenang secara horizontal. Itu hanya mendorongtrick
tumpukan kemudian mencetaknya sebelum berhenti.Sebab
Fishing
,_
instruksinya turun. Nelayan akan mengikuti dek yang merupakan baris kedua sambil menangkap karakter dari baris ketiga. Ini akan mendorongtreat
pita kemudian mencetaknya, berhenti saat mencapai ujung geladak.Jika kesalahan keluar diizinkan, Anda bisa turun ke 35 byte dengan kode berikut yang akan melempar kesalahan saat dijalankan
><>
setelahtrick
dicetak dari tumpukan:Anda juga harus memeriksa jawaban bahasa bertema saya, #hell / Agony and evil / ZOMBIE !
sumber
05AB1E / Sebenarnya , 10 byte
Penjelasan
05AB1E
Cobalah online
Sebenarnya
Cobalah online
sumber
trick
, tetapi bagaimana caranya’®Â
? ..Haskell / ML Standar , 56 byte
Tampilan Haskell
Titik koma memungkinkan beberapa deklarasi dalam satu baris dan bertindak seperti linebreak, jadi kami dapatkan
Program Haskell dijalankan dengan memanggil
main
fungsi, jadi di baris terakhirputStr"trick"
dijalankan yang hanya mencetaktrick
.Dua baris pertama ditafsirkan sebagai deklarasi fungsi mengikuti pola
<functionName> <argumentName1> ... <argumentNameN> = <functionBody>
. Jadi di baris pertama fungsi bernamafun
dideklarasikan yang mengambil dua argumen bernamaputStr
danx
dan fungsi tubuhprint"treat"
. Ini adalah fungsi Haskell yang valid dengan tipefun :: t -> t1 -> IO ()
, artinya dibutuhkan argumen tipe arbitrert
dan yang kedua dari beberapa tipet1
kemudian mengembalikan aksi-IO. Jenist
dant1
tidak masalah karena argumen tidak digunakan di badan fungsi. Jenis tindakan-IO berasal dariprint"treat"
, yang mencetak"treat"
ke StdOut (perhatikan"
, itu sebabnyaputStr
bukannyaprint
digunakan dalammain
). Namun karena ini hanya deklarasi fungsi, tidak ada yang benar-benar dicetak karenafun
tidak dipanggilmain
.Hal yang sama terjadi pada baris kedua
val main=();
, sebuah fungsival
dideklarasikan yang mengambil argumen arbitrer bernamamain
dan mengembalikan unit , tuple kosong()
. Jenisnya adalahval :: t -> ()
(Nilai dan tipe unit dilambangkan dengan()
).Cobalah di Ideone.
Tampilan ML standar
Standar ML adalah bahasa fungsional utama dengan sintaksis yang terkait, tetapi tidak sama dengan Haskell. Secara khusus, deklarasi fungsi diawali dengan kata kunci
fun
jika mereka mengambil argumen, dan kata kuncival
jika tidak. Juga dimungkinkan untuk memiliki ekspresi di tingkat atas (artinya tidak ada di dalam deklarasi apa pun) yang dieksekusi ketika program dijalankan. (Dalam menulis Haskell di1+2
luar deklarasi melemparnaked expression at top level
-eror). Akhirnya simbol untuk menguji kesetaraan=
bukan==
di Haskell. (Ada banyak perbedaan lagi, tetapi hanya itu yang penting untuk program ini.)Jadi SML melihat dua deklarasi
diikuti oleh ekspresi
yang kemudian dievaluasi. Untuk menentukan apakah
main
samaputStr"trick"
, kedua belah pihak harus dievaluasi dan keduanya harus memiliki tipe yang sama, seperti SML (dan juga Haskell) diketik secara statis. Pertama-tama mari kita lihat sisi kanan:putStr
bukan fungsi perpustakaan di SML, tetapi kami mendeklarasikan fungsi yang disebutkanputStr
dalam barisfun putStr x=print"treat";
- ia membutuhkan argumenx
(ini adalah string"trick"
dalam kasus kami) dan segera melupakannya lagi, karena tidak terjadi pada fungsi tubuh. Kemudian tubuhprint"treat"
dieksekusi yang mencetaktreat
(tanpa melampirkan"
, SMLprint
berbeda dari Haskellprint
).print
memiliki tipestring -> unit
, demikianputStr
juga tipea -> unit
dan oleh karena ituputStr"trick"
memiliki tipe sajaunit
. Agar diketik dengan baik,main
harus memiliki tipeunit
juga. Nilai untuk unit di SML sama dengan di Haskell()
, jadi kami mendeklarasikanval main=();
dan semuanya diketik dengan baik.Cobalah di codingground.
Catatan: Output di konsol adalah
karena dalam SML \ NJ nilai dan jenis setiap pernyataan ditampilkan setelah setiap deklarasi. Jadi pertama jenis
putStr
danmain
diperlihatkan, maka ekspresi akan dievaluasi menyebabkantreat
yang akan dicetak, maka nilai ekspresi (true
karena kedua belah pihak dari=
yang()
) terikat untuk variabel hasil implisitit
yang kemudian juga ditampilkan.sumber
fun ... ... =
itu adalah gula sintaksisval rec ... = fn ... =>
. Tapi sekali lagi sudah puluhan tahun sejak saya menggunakan ML.fun
adalah sintaksis gula untuk fungsi anonim terikatval
(rec
hanya diperlukan jika fungsi bersifat rekursif) dan oleh karena itu perumusan "harus diawali" salah dipilih, saya akan mengedit jawabannya. Secara umum penggunaanfun
adalah praktik terbaik, terutama dalam kode golf karena jauh lebih pendek.Ruby / C,
64625148 byteApa yang dilihat Ruby:
The
tap
Metode mengambil blok dan mengeksekusi sekali. Ini adalah pengidentifikasi pendek yang dapat kita buat#define
makro untuk dalam C. Ini juga memungkinkan kita untuk menempatkan blok kurung kurawal dalam kode bersama, meskipun Ruby tidak mengizinkan{}
s dalam sebagian besar konteks.Satu-satunya nilai palsu di Ruby adalah
false
dannil
. Secara khusus, 0 benar. Dengan demikian, Ruby akan mencetak "trik."Apa yang dilihat C (setelah pra-prosesor):
0 palsu di C, jadi C akan mencetak "treat."
2 byte disimpan berkat daniero.
sumber
puts
alih-alihprintf
menyimpan dua byteprintf
C, saya lupa bahwa ia juga memilikiputs
fungsi.tap
? Dan mengapa Anda tidak menyingkirkan ruang?p ? "trick":"treat"
=>p?"trick":"treat"
tap
sebenarnya melayani dua tujuan. Ini adalah pengidentifikasi pendek untuk#define
mengunci, tetapi juga memungkinkan saya untuk menempatkan kawat gigi langsung dalam kode Ruby.{}
blok di Ruby tidak bekerja seperti yang mereka lakukan di C dan bahasa yang sama, tetapitap
tidak mengambil blok, dan mengeksekusi sekali.p
.?<character>
adalah karakter literal, jadi ruang diperlukan setelah?
.QBasic / JavaScript,
5144 byteDi QBasic, ia mencetak baris kedua dan tidak mengeksekusi baris pertama karena diyakini sebagai komentar (terima kasih '). Di JS, ia memanggil fungsi PRINT, yang didefinisikan pada baris pertama, tepat setelah JS NOP
'';
.sumber
ShapeScript / Foo , 13 byte
Cobalah online! trik | memperlakukan
Bagaimana itu bekerja
ShapeScript adalah parsing karakter demi karakter. Ketika EOF dipukul tanpa menemukan kutipan penutupan, tidak ada yang didorong di stack.
'trick'
tidak mendorong string di dalam tanda kutip, yang dicetak ke STDOUT secara implisit.Foo tidak memiliki perintah yang ditetapkan untuk karakter
'trick'
, sehingga bagian itu diabaikan secara diam-diam. Namun, ia mencetak apa pun di antara tanda kutip ganda segera ke STDOUT, bahkan jika kutipan penutupnya hilang.sumber
Ruby / Perl, 21 byte
Perl
Menghitung
"trick" % 1
yang0 % 1
jadi||
mengirimkantreat
keprint
sebaliknya, karena Perl menerima barewords.Rubi
Memformat string
"trick"
dengan argumen1
, yang menghasilkan"trick"
kebenaran, sehingga||
tidak diproses.sumber
MATL / CJam , 17 byte
Dalam MATL output ini
TRICK
. Dalam CJam itu menghasilkanTREAT
.Penjelasan
MATL
CJam
sumber
Jelly / pl , 12 byte
Ini adalah program yang ditampilkan menggunakan halaman kode Jelly .
Cobalah online!
Ini adalah program yang ditampilkan menggunakan kode halaman 437 .
Cobalah online!
Kedua program telah diuji secara lokal dengan file 12 byte yang sama, jadi ini adalah polyglot yang tepat.
Bagaimana itu bekerja
Di Jelly, setiap baris mendefinisikan tautan (fungsi); baris terakhir mendefinisikan tautan utama , yang dieksekusi secara otomatis ketika program dijalankan. Kecuali kode sebelum
7f
byte terakhir (linefeed di halaman kode Jelly) berisi kesalahan parser (yang akan segera membatalkan eksekusi), mereka hanya diabaikan. Baris terakhir,“¡ṾI»
cukup indeks ke kamus Jelly untuk mengambil kata trik , yang dicetak secara implisit di akhir program.Saya tidak tahu banyak tentang pl, tetapi nampaknya interpreter hanya mengambil satu baris kode dan mengabaikan semua yang datang setelahnya. Seperti di Perl, kata pengantar string diperlakukan sebagai string, jadi
treat
mencetak dengan tepat.sumber
Objective-C / C, 50 byte
Objective-C mendapat permen dan hadiah cetakan , tetapi C tidak dan trik mencetak .
Bagaimana itu bekerja
Saya tidak tahu banyak tentang Objective-C , tetapi ia melakukan apa yang kami harapkan dalam situasi ini. Definisi ulang dari
puts
tidak mempengaruhi output karena kita tidak pernah memanggil fungsi, danmain
cetakan memperlakukan dan linefeed ke STDOUT.Anda mungkin mengharapkan C untuk melakukan hal yang sama, tetapi setidaknya gcc 4.8, gcc 5.3, dan dentang 3.7 tidak.
Karena kita tidak perlu nyata printf (yang mengambil format string dan argumen tambahan) dan string yang akan dicetak berakhir dengan linefeed, kita dapat menggunakan puts gantinya. put sedikit lebih cepat dari printf (yang harus menganalisis argumennya sebelum dicetak), jadi kecuali kita mendefinisikan kembali fungsi printf juga, kompiler mengoptimalkan dan mengganti panggilan untuk printf dengan panggilan untuk menempatkan . Sedikit kompiler tahu bahwa memanggil
puts
dengan argumen"treat"
akan mencetak trik sebagai gantinya!Tidak termasuk stdio.h sangat penting di sini, karena mendefinisikan put memerlukan penggunaan tipe yang sama dengan yang ada di file header (
puts(const char*)
).Akhirnya, perlu dicatat bahwa panggilan untuk printf di menempatkan melewati string tanpa linefeed tambahan. Jika tidak, kompiler akan "mengoptimalkan" panggilan itu juga, menghasilkan kesalahan segmentasi.
sumber
Batch / sh, 30 byte
Penjelasan. Batch melihat baris pertama sebagai label, yang diabaikannya, dan mengeksekusi baris kedua, yang mencetak Trick. @ Menekan Batch's standar menggemakan perintah untuk stdout. (Label tidak pernah digaungkan.) Sementara itu sh melihat yang berikut:
Baris pertama tidak melakukan apa-apa (ini alias
true
), baris kedua mencetak Treat, dan baris ketiga keluar dari skrip, sehingga Trik @echo tidak pernah tercapai.sumber
sed / Hexagony 32 byte
sed
Cobalah secara Online!
Baris pertama mencetak
trick
jika ada string kosong di akhir input. (sed tidak melakukan apa-apa jika tidak ada input, tetapi baris kosong pada stdin diperbolehkan dalam kasus ini)Contoh dijalankan:
Segi enam
Cobalah secara Online!
Yang pertama
/
mengarahkan pointer instruksi ke atas dan ke kiri, sehingga membungkus bagian kiri bawah, melewatkan teks yang digunakan untuk sed. Ini menggunakan kembali r dari kode sed dan menjalankan beberapa yang lain tanpa efek. Hex diperluas terlihat seperti ini:Keluaran:
sumber
A
, meskipun Anda bisa membuatnya lebih jelek dengan mengubah semua huruf menjadi huruf besar): hexagony.tryitonline.net/...C # / Java
Ini mungkin tidak memenuhi syarat karena tidak berjalan sendiri, tetapi tantangannya telah mengingatkan saya pada sebuah kekhasan dalam bagaimana C # dan Java menangani perbandingan string secara berbeda sehingga Anda dapat bersenang-senang dengan kode kebingungan.
Fungsi berikut ini valid dalam C # dan Java, tetapi akan mengembalikan nilai yang berbeda ...
sumber
Brain-Flak / Brain-Flueue,
265 253 219 165 139 115 113101 byteTermasuk +1 untuk
-A
Terima kasih kepada Wheat Wizard untuk bolak-balik, bermain golf beberapa byte dari kode masing-masing, dengan saya.
Brain-Flak: Cobalah online!
Brain-Flueue: Cobalah secara online!
Penjelasan:
Bagian pertama berisi daftar nilai yang dilihat Brain-Flak.
Ketika beralih ke Brain-Flueue, saya mulai membuat daftar nilai ketika Brain-Flueue melihatnya.
sumber
PowerShell / Foo, 14 byte
The
'trick'
di PowerShell membuat string dan meninggalkannya di pipeline. The#
dimulai komentar, sehingga program selesai dan implisitWrite-Output
cetaktrick
.Di Foo, (Coba Online!) ,
'trick'
Diabaikan,#
menyebabkan program tidur selama beberapa0
detik (karena tidak ada apa-apa di pointer array), kemudian"treat
mulai string. Sejak EOF tercapai, ada implisit"
untuk menutup string, dan itu dicetak ke stdout.sumber
#
adalah fungsi salin, dan hanya membutuhkan argumen kiri kompleks yang tidak negatif, bukan string. Simbol komentarNB.
#
PHP / Perl, 28 byte
defined&x
memberikan sesuatu yang benar dalam PHP (tidak tahu kenapa, tapi itu benar).
Dalam Perl memeriksa apakah fungsi
x
didefinisikan - yang tidak.->
trick
dalam PHP,treat
dalam Perl.sumber
CLS
?`
adalah nilai sebenarnya dari definisi & x atau d & x tanyakan pada saya yang mana yang Anda dapatkan