Anak kucing sangat mirip kucing. Beberapa perbedaan utama adalah kelucuan, kurangnya kecerdasan, dan ukuran. Demikian pula, cat
perintahnya berbeda dari kitten
perintah. Untungnya, hanya ada satu perbedaan dalam hal ini. Dalam perintah kitten, semua huruf besar diganti dengan huruf kecil.
Objektif
Untuk mengimplementasikan program yang berperilaku serupa dengan cat
. Semua karakter [A-Z]
dihasilkan huruf kecil.
Memasukkan
Daftar file sebagai argumen baris perintah. Jika tidak ada file yang terdaftar, maka baca dari input standar. Input mungkin mengandung karakter dan karakter yang tidak dapat dicetak di luar rentang ASCII.
Keluaran
Jika input adalah banyak file, gabungkan konten dan output semua karakter sebagai huruf kecil. Jika membaca dari STDIN, keluarkan isi STDIN dengan semua huruf besar sebagai huruf kecil.
Catatan: Hanya membuat karakter [A-Z]
huruf kecil. Tidak dapat diterima jika karakter lain dibuat huruf kecil.
Contohnya
$ echo "HelLo" > file.txt
$ kitten file.txt
hello
$ echo "Good Bye" | kitten
good bye
$ echo "Ä" | kitten
Ä
Seperti biasa dengan kode-golf , paling tidak byte menang.
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
sumber
[A-Z]
huruf kecil" apakah Anda mengantisipasi input Unicode?Ü
,Ñ
dan sejenisnya?Jawaban:
Perl, 6 byte
5 byte kode + 1 byte baris perintah
Contoh penggunaan:
Konfirmasi perilaku Unicode yang benar:
sumber
Bash, 19 byte
Cara terbaik untuk membuat anak kucing adalah dengan menggunakan kucing yang sebenarnya.
Contoh dijalankan
sumber
man woman
lelucon itu ...Perl, 11 byte
10 byte kode + 1 byte baris perintah
Contoh penggunaan:
sumber
Python 3, 77 byte
sumber
Ruby, 13 byte
Hitungan byte termasuk 1 byte untuk
p
flag. Menjalankannya seperti:ruby -p kitten.rb
.Mengambil input dari argumen stdin atau file, seperti halnya kucing dewasa.
sumber
Ä
?echo "HelloÉ" | ruby -p kitten.rb
->helloÉ
PowerShell, 112 Bytes
Sangat tidak terbaca. Berikut versi yang sedikit diperluas di bawah ini:
Menentukan fungsi internal
l
yang berulang di atas loop dari 97 hingga 112 (yaitu, ASCIIa
ke ASCIIz
). Pisahkan string input di atas karakter itu (yay case-insensitive default), gabungkan kembali dengan huruf kecil "benar". Perhatikan bahwa ya, ini berarti "Tes" sebentar akan menjadi "Tst" karena iterasi melaluie
, misalnya. Tidak memengaruhi output.Bagian kedua adalah bit yang sulit untuk diketahui jika kita memiliki input pipa (setara dengan stdin untuk PowerShell) atau input baris perintah. Variabel khusus
$args
hanya ada jika input baris perintah ada, jadi kami mengulanginya masing-masing,gc
(untukGet-Content
) dan schlep yang hinggal
. Jika tidak, kami hanya$input
mengatur hinggal
. Perhatikan bahwa kita dapat menukar pernyataan if / else kita (yaitu,if($input)
), tetapi karena "input" adalah satu karakter lebih panjang dari "args" cara ini lebih pendek.sumber
"String".ToLower()
juga akan mengurangi karakter Unicode, yang melanggar aturan. Ada banyak hal yang tidak dilakukan PowerShell dengan benar terkait Unicode, tapi sayangnya ini adalah salah satu contoh yang berfungsi dengan benar.Python 2, 53 byte
sumber
R, 97 byte
Pemakaian:
sumber
CoffeeScript , 292 byte
Pemakaian:
Partisipasi pertama saya pada codegolf jadi tolong jangan kasar :).
Tentu saja kode ini dapat lebih banyak golf dan kopi / javascript bukan pilihan terbaik untuk melakukannya, tetapi ia melakukan apa yang diharapkan.
Ketika membaca argumen, ia juga menangani masalah keberadaan file (jika file tidak ada, stringnya tidak jelas.)
Setiap bantuan atau saran untuk meningkatkan kode ini dipersilahkan!
sumber
Julia, 123 byte
Tidak Disatukan:
sumber
CJam, 18 byte
Daftar file harus disediakan dalam bentuk URL, yang merupakan satu-satunya format yang dipahami CJam.
Contoh berjalan
Bagaimana itu bekerja
sumber
Python 2,
10010297 byteFungsionalitas dikoreksi (dan 4 byte ditambahkan) oleh matsjoyce. Untungnya, saya menyimpan dua byte dengan beralih ke Python 2.
Membawa argumen dari baris perintah, atau dari STDIN jika tidak ada argumen yang ditemukan.
Ini menyalahgunakan argumen default dari beberapa fungsi. Secara default,
open
menggunakan mode teks hanya-baca, yang persis seperti yang kita inginkan.read
, jika dipanggil tanpa argumen, akan mengembalikan semua teks dalam aliran.Tidak Disatukan:
sumber
input
tidak mengevaluasi, saya bisa beralih ke Python 2 dan menghapus tanda kurungprint
.Python 3,
124123 bytePython makan anak kucing!
sumber
C,
106108 byteSunting: Memperbaiki kesalahan yang muncul saat memeras byte. Stdin tidak bekerja, sekarang sudah.
Saya cukup yakin saya bisa memeras beberapa byte, tapi inilah yang mudah dipahami, tidak sama sekali bahasa kasar, penyerahan:
Dan versi yang agak lebih terformat untuk dibaca:
sumber
Mathematica, 66 byte
Disebut sebagai
Mathematica sudah memiliki
ToLowerCase
fungsi, tetapi ia mengonversi karakter khusus (Unicode dan matematika) juga. Jadi saya harus mencatatnya. Fungsi ini akan mengambil input apa pun.sumber
C #,
230226 byteTidak Disatukan:
sumber
Haskell, 133
Pemrosesan arg gaya kucing diturunkan dari tutorial ini , kemudian disusun ulang untuk mencukur karakter.
Menjelaskan
l
, fungsi untuk huruf kecil satu karakter:sum[32|condition]
adalah bentuk yang lebih pendek dariif condition then 32 else 0
.[x..]!!count
adalahiterate succ x !! count
adalahtoEnum $ fromEnum x + count
dan lebih pendek dari mengimpor dan menggunakanData.Char.toLower
dengan kondisi untuk membatasi ke ASCII.'@'
dan'['
apakah karakter segera mendahuluiA
dan mengikutiZ
, sehingga saya dapat menggunakannya<
sebagai gantinya<=
.Terima kasih kepada Anders Kaseorg untuk kontribusi
sum[...|...]
dan[x..]!!
triknya.sumber
l x=[x..]!!sum[32|x>'@',x<'[']
C #, 342 byte
C #, 319 byte
single-liner, sama seperti di atas:
sumber
SILOS 179 karakter
Jangan ragu untuk mencoba kode ini secara online!
Pada dasarnya ini diterjemahkan ke dalam pusedocode ini.
sumber
C, 91 byte
C, 98 byte
Meskipun jika keterbacaan lebih penting dari jumlah byte logika yang sama ditulis di bawah ini:
sumber
sed, 14 byte
Jalankan dengan
env -i sed -f kitten.sed
.sumber
LANG=C sed -f kitten.sed
, saya tidak yakin apakah saya harus menerapkan penalti untuk menjelaskan itu. Pertanyaan ini tidak menentukan cara menghitung panggilan program, dan sepertinya tidak dibahas dalam meta.s/.*/\L&/
untuk solusi sembilan bytes/.*/\L&/
dans/./\L&/g
memang solusi 9-byte!Java, 198 byte
Anda dipaksa untuk menggunakan lambda di atas dengan file, jadi tidak perlu mengambil input dari STDIN! Juga, ini adalah
Function<File[], UnaryOperator<String>>
. Ini digunakan sepertifoo.apply(anArrayOfFiles).apply(anything)
.Sebagai sesuatu yang lebih masuk akal bagi mereka yang baru mengenal Jawa, dibutuhkan 223 byte:
Sebagai sesuatu yang dikompilasi, dibutuhkan 232 byte:
sumber