Pada tantangan itu Anda harus menyelesaikan tantangan itu.
Kontes telah usai! Periksa bagian akhir pertanyaan
Spesifikasi:
- Tulis kode terkecil (Bahasa apa saja *).
- Skor jawaban adalah jumlah dari:
- Panjang kode tanpa spasi .
- Jumlah jawaban yang menggunakan bahasa yang sama dengan kuadrat.
- Panjang nama bahasa terbesar pada kontes dikurangi panjang bahasa Anda.
- Downvotes minus Upvotes (alias minus Total Suara)
- Tulis posisi pengguna dan skornya.
- Setiap pengguna hanya dapat menulis satu jawaban.
- Skor terendah menang.
Pengujian:
Jadi, di akhir kontes, masukan yang mungkin bisa terjadi (STDIN):
Kolomnya adalah: Nama pengguna, Bahasa, Panjang kode (tanpa spasi) dan TotalVote
UserA Python 100 1
UserB Perl 30 2
UserC Java 500 3
UserD Brainfuck 499 4
UserE Perl 29 5
Jika nama pengguna Anda memiliki spasi seperti "Nama Pengguna Saya" itu akan menjadi "MyUserName" sehingga input akan selalu memiliki tepat 4 kolom .
Outputnya adalah (STDOUT):
1 UserE 33
2 UserB 37
3 UserA 103
4 UserD 496
5 UserC 503
Penjelasan:
User P N^2 L V
A 100 1 3 -1
B 30 4 5 -2
C 500 1 5 -3
D 499 1 0 -4
E 29 4 5 -5
Brainfuck adalah nama terbesar dengan 9 karakter ( 9 - 9 = 0
).
Perl dan Java memiliki 4 karakter ( 9 - 4 = 5
).
Python memiliki 6 karakter ( 9 - 6 = 3
).
Perl memiliki 2 entri sehingga masing-masing mendapatkan 4 poin tambahan.
Tentang bahasa:
Nama bahasa hanya boleh mengandung huruf bahasa Inggris (yaitu [A-Za-z]) dan yang tidak sesuai yang harus "diterjemahkan" ke sesuatu yang lain.
Pada akhir kontes, setiap bahasa harus memiliki perwakilannya (Anda dapat mengusulkan representasi yang lebih baik)
Contoh:
Python3 -> Python
Ruby1.9 -> Ruby
Shell Script -> Shell
C++ -> Cpp
C# -> CSharp
><> -> Fish
Tenggat: 20 Agustus 2011 00:00 UTC
Di akhir kontes, pemenang harus menggunakan programnya untuk menemukan pemenang. Diijinkan bukan pemenang untuk menggunakan program mereka untuk menemukan pemenang dan memberitahunya untuk menggunakan programnya untuk menemukan pemenang. :)
Pemenang (lihat di atas) mendapat jawaban yang diterima!
* Bahasa Whitespace memiliki keuntungan yang tidak adil karena dapat memperkenalkan kompleksitas tanpa batas tanpa penalti pada jumlah karakter. Jawaban yang ditulis di Whitespace mungkin ada di kontes tetapi tidak bisa menang.
Jika Anda dapat membuat logika program Anda di ruang putih , Anda juga tidak bisa menang. Itu topik yang subjektif, tetapi jika program Anda dapat meningkat dalam ukuran tanpa dihukum, itu jatuh dalam kondisi itu.
Input akhir
Urutan nama menurut abjad (per 20 Agustus 2011 UTC 00:00)
boothby Sage 41 9
Harpyon Python 203 4
JBernardo Python 184 7
JoeyAdams PostgreSQL 225 6
jpjacobs AWK 269 4
Lowjacker Ruby 146 2
PeterTaylor Golfscript 82 4
rmackenzie CommonLisp 542 2
shesek Javascript 243 3
userunknown Scala 252 1
Karena jawaban saya dan stan tidak diizinkan untuk menang, pemenang harus menyatakan dirinya pemenang dengan mengedit pertanyaan ini dan memposting hasil akhir di bawah ini.
Hasil akhir
1 boothby 39
2 PeterTaylor 79
3 Lowjacker 151
4 JBernardo 185
5 Harpyon 207
6 JoeyAdams 220
7 shesek 241
8 userunknown 257
9 jpjacobs 273
10 rmackenzie 541
Jawaban:
Golfscript, 83 karakter (82 tidak termasuk spasi)
Penjelasan:
sumber
Sage:
484241 non-spasi putih (total 60246 byte)Hanya untuk menjadi tusukan:
Perhatikan bahwa baris pertama harus sama dengan
s='\t'
, tetapi blok kode SE menerjemahkan tab menjadi 4 spasi.Ruang putih membongkar untuk:
Perhatikan bahwa penggunaan saya
[0..len(inputs)-1]
memastikan bahwa ini bukan skrip Python, karena Sage adalah superpython *. Sayangnya, exec kembali menggunakan Python ... jadi saya harus mempersiapkannya.sunting 1: pemisahan pada tab, bukan baris baru - apa yang saya pikirkan? sunting 2: membuat kode lebih mudah di mata, dan mendaur ulang tab pemisahan dengan mendorong 'baris baru' lain ke spasi
* Ok, tidak cukup: kita pecahkan xor
sumber
Python, 184
Itu sebabnya saya suka ruang.
Itu jauh lebih mudah dibaca!
sumber
PostgreSQL - 225 karakter tanpa spasi
242 → 225: Subquery yang diganti dengan klausa windowing .
diuji pada 9.2devel
Penggunaan dan output:
sumber
Python 2 -
210203 karakter tanpa spasiPenggunaan dan output:
sumber
x.split()
(itu juga akan menghapus\n
)AWK,
277269 karakter tanpa spasiDigunakan
in
untuk memotong 8 karakter.Versi spasi dan versi komentar:
pemakaian:
sumber
sed '/#/ d' meta.awk|sed ':a;$!N;s/\n//;ta;s/\s//g;'|wc -c
untuk menghitung karakter.Ruby, 146 karakter + 4 spasi
sumber
JavaScript, 243 karakter
Lebih lama dari sebagian besar solusi lain ... tapi yang terbaik yang bisa saya dapatkan dalam JavaScript.
Pemakaian
Input harus dalam variabel J. Misalnya, buka konsol dan tulis:
CoffeScript, 177 karakter
Tentang logika yang sama, di CoffeScript:
sumber
length
atribut dengan menggunakan variabel dan subskrip.Gangguan Umum - 546
(Ketika anak golf menggabungkan kurung, tidak termasuk spasi)
Golf berat, solusi lumpuh saya adalah dan terpanjang di papan. Jadi saya memutuskan untuk sedikit curang dengan menulis bootloader yang jauh lebih pendek dan mengklaim itu sebagai kiriman saya.
(Saya menganggap pengajuan @ Boothby sebagai preseden yang mendukung perilaku ini)Terima kasih besar kepada Peter Taylor untuk bantuannya memeras setiap karakter terakhir dari bootstrapper ini.
BASH - 35
Penggunaan : cat ./test0 | bash ./btstrp.sh
Joey Adams menunjukkan bahwa ini bukan solusi yang adil karena saya dapat "secara sewenang-wenang meningkatkan kompleksitas solusi Anda tanpa peningkatan ukuran kode yang sesuai", suatu hal yang tidak secara jelas dinyatakan dalam spesifikasi.
sumber
$REPLY
. Cobawhile read x;do a=$x"\n"$a;done
. Dan Anda harus dapat menghapus spasi setelah|
s pada baris terakhir. Pada catatan lain, saya tidak yakin menggunakan alamat IP internal sangat berguna: tidak akan bekerja untuk orang lain.wget -q http://url/l.lsp ;cat - |clisp l.lsp
Scala
269 266252 tanpa kosong dan baris baru.Doa:
pembaruan:
solusi saya:
*) keluar dari kontes
sumber
stdin
bukanfromFile(System.in)
.