Anda ditugaskan menulis dua program. Program A harus mencetak apa pun pada semua input kecuali ketika program B adalah input, dalam hal ini harus dicetak 1
. Program B harus mencetak 1
pada semua input kecuali ketika program A adalah input, dalam hal ini tidak boleh mencetak apa pun.
Mencetak:
- +1 Untuk setiap karakter dari kedua program.
- Skor terendah menang.
Jawaban:
GTB , 25
Dieksekusi dari kalkulator TI-84
Program
A
Program
B
Penjelasan
`_
Masukkan string@_eq;"
Periksa apakah itu sama dengan kode sumber (#
secara otomatis dihapus bersama dengan huruf kecil)$w;&
Jika demikian, tampilkan 1 (jika tidak ada) [untukB
itu$#w;&
- jika tidak, tampilkan 1 (jika tidak ada)]sumber
Bash - 32 karakter
Script A - 16 karakter
Script B - 16 karakter
Pemakaian
sumber
Ruby, 54
SEBUAH
B
contoh:
sumber
J (62)
Karena Anda tidak melarang ini ...
Simpan program sebagai
A
danB
masing masing.Program A (30):
Program B (32):
Cara kerjanya (Program B, A serupa):
1!:1[3
: baca stdin1!:1<'A'
: baca fileA
-:
: lihat apakah mereka sama-.
: meniadakan hasilnya#~
: mereplikasi hasil dengan sendirinya (jadi,1
hasil dalam satu1
dan0
hasil dalam nol0
s, yaitu tidak ada)echo
: outputexit
: exit (J interpreter tidak keluar secara default saat mencapai akhir file)sumber
Haskell - TANPA memuat sumber - 478
644karakterIni mengasumsikan getContents SELALU berakhir dengan baris baru dan menjatuhkan karakter terakhir tanpa memeriksa karena saya tidak merasa ingin melarikan diri
SEBUAH
B
Ini bekerja seperti quine standar, tetapi bertukar - untuk * untuk mendapatkan program lain (menghindari karakter tersebut di tempat lain).
Tes berikut dicetak seperti yang diharapkan (mengganti main = berinteraksi $ dengan a = dan b =)
-
sumber
Python 2.7 - 82
File A (secara harfiah bernama adil
a
):File B (secara harfiah bernama adil
b
):sumber
.py
- apakah itu bekerja?python a
.touch a
akan membuat file kosong jika Anda memiliki izin. Untuk kesenangan ekstra kejam, Anda bahkan dapat melakukantouch \~
yang membuat file dengan nama single tilde (~
) - lalu tonton ketika seseorang dengan bodohnya mencoba menghapusnya;)Ruby, 166 karakter, tidak ada sumber bacaan
SEBUAH:
B:
Pastikan editor teks Anda tidak menyimpan dengan baris baru tambahan.
Penggunaan (contoh):
Setiap program mengkonstruksikan sumber program lain menggunakan HEREdoc dan transformasi string, kemudian membandingkan hasilnya dengan input.
sumber
p
adalah metode ruby bawaan yang mencetak argumen yang diteruskan ke sana, lalu mengembalikan argumen itu, menjadikannya berguna untuk keluaran yang di-golf. Ketika dipanggil tanpa argumen, ia mengembalikan nihil. Argumen untukgets
adalah pembatas, sehingga meneruskanp
menghasilkan pembatas nil yang berarti membaca STDIN sampai mencapai EOF. Ekspresi heredoc adalah<<2
, jadi itu berakhir pada (dan tidak termasuk), 2 di akhir file.2
sebagai pembatas heredoc adalah sedikit kebingungan tradisional. Ini bisa berupa string apa saja.Haskell - 138
Bukan jawaban yang benar-benar bagus, tetapi ingin membuat kedua program menggunakan sumber yang sama. Bisa menyimpan beberapa karakter dengan mengganti nama file, tetapi itu tidak akan menjadikan ini solusi yang unggul jadi saya tidak berpikir itu sepadan.
Kompilasi sumber ini sebagai keduanya
A
danB
.Uji:
sumber
A
, lalu salinA
keB
?Node.js - 142 karakter
Script
|
(atau dikenal sebagai Script A) - 80 karakterScript
&
(atau dikenal sebagai Script B) - 62 karakterPemakaian
Deskripsi
Script B membaca konten Script A dan mengevaluasinya setelah bertukar nama file dan
and
operator keor
.Saya menamai file-file tersebut
&
dan|
saya dapat melakukan penggantian tunggal dalam Script B.sumber
Python 3 - 102 karakter
Mencetak 1 jika inputnya sama dengan program 2, jika tidak apa-apa:
Mencetak 1 jika input tidak sama dengan program 1, jika tidak apa-apa:
sumber
bash / grep - 59 karakter
51 karakter jika kita hanya menghitung string program yang sebenarnya.
sumber
R (62 karakter)
menghasilkan:
Meta comment: R menunjukkan relatif buruk pada kode golf karena tidak ada jalan pintas untuk
function
...sumber