Alfabet dalam bahasa pemrograman


69

Tugas kita adalah, untuk setiap huruf alfabet (Inggris), menulis program yang mencetak alfabet, dalam bahasa yang namanya dimulai dengan huruf itu.

Masukan: tidak ada

Keluaran:

abcdefghijklmnopqrstuvwxyz

huruf besar dan garis belakang opsional

Aturan :

  • Metrik penilaian adalah panjang nama bahasa pemrograman , ditambah panjang kode. Oleh karena itu, C akan dinilai "penalti" 1, sementara GolfScript akan dinilai penalti 10.
  • Satu bahasa / implementasi per jawaban. Berbagai jawaban dianjurkan.
  • Bahasa pemrograman seharusnya sudah ada sebelum penulisan posting ini, pada tanggal delapan belas April 2011 ini.
  • Jika huruf pertama nama bahasa pemrograman bukan huruf bahasa Inggris, itu tidak boleh dipaksa menjadi satu. Ini akan diperlakukan sebagai surat terpisah (artinya kurang kompetisi).
  • Tidak ada jawaban yang akan diterima sampai setiap huruf bahasa Inggris memiliki solusi.

Peringkat saat ini:

Katakan kalau aku merindukan siapa pun.

Papan peringkat otomatis (percobaan)


1
Apakah kita diperbolehkan mencetak sampah ke stderr?
Peter Taylor

@ Peter Taylor: Gila. Untuk menjawab pertanyaan Anda, ya, mencetak sampah ke stderr baik-baik saja (selama stdout benar).
Joey Adams


2
Apakah *0*5AB1Esama dengan *o*sabie: P?
Guci Gurita Ajaib

1
@MagicOctopusUrn Tidak masalah karena aturan ini: " Bahasa pemrograman seharusnya sudah ada sebelum penulisan posting ini, pada delapan belas April 2011 ini . "
Kevin Cruijssen

Jawaban:


13

K adalah untuk K , 12 karakter -> Skor: 13

`0:_ci97+!26

Tentunya Anda dapat mengadaptasi salah satu solusi Anda ke A +, kan?
Joey

Menyiapkan A + agak funky. Saya pernah melakukannya tetapi saya tidak benar-benar menyukainya. (Owl, newLISP, dan zshell semuanya turnkey.)
Jesse Millikan

3
saya berasumsi itu k2 atau k3. di k4 / q, Anda bisa melakukannya dalam 7 karakter dengan 1 .Q.a;.
Aaron Davies

Anda tidak perlu `0:atau 1@dalam codegolf
ngn

25

P (sebenarnya) untuk Piet - 57 kode

Versi besar (ukuran codel = 6)

p untuk piet - besar

Versi kecil (ukuran codel = 1)

p untuk piet - kecil

Diuji dengan juru bahasa Erik npietdan dikembangkan dengan Piet Creator .

Sunting : Ini adalah versi "jejak" (dibuat dengan npiet -tpf) sehingga Anda dapat melihat cara kerjanya.

Eksekusi dimulai di kiri atas dan berputar di sekitar perbatasan searah jarum jam. Tepi atas dan tepi kanan adalah pengaturan (menghitung nilai a(97) membutuhkan beberapa kode). Loop dimulai di tepi bawah dan pergi ke tepi kiri. Ketika nilai ztercapai, program berbelok ke kanan ke bagian lintas di bawah yang pertama Pdan berakhir.

Klik gambar untuk memperbesar dan melihat detailnya


Oooh, Piet selalu menyenangkan. Dan Anda tidak memiliki biner Windows yang berfungsi di Piet Creator, bukan? (Saya terlalu malas untuk berburu semua dependensi dan prasyarat hanya untuk bermain-main sedikit lagi.)
Joey

Dan bukankah itu benar-benar 400 kode dan 57 kode kode ? (Saya pikir kami tidak memiliki konsensus bagaimana menghitung Piet di sini)
Joey

1
@ Joey, saya akan melihat apakah saya bisa memasak membangun Piet Creator untuk windows. Sudah beberapa saat sejak saya mengujinya di sana. Anda benar tentang kode. Jika saya meletakkan program dalam satu baris itu akan menjadi 57 codel (memberi atau mengambil beberapa), versi di atas lebih ramah mata (seperti spasi putih di langs lain). Mungkin kiriman Piet harus memiliki sumber minimal dan menarik. Lebih baik kita putuskan, karena aku merencanakan lebih banyak jawaban Piet :)
Casey

Nah, Anda bisa membuka pertanyaan tentang meta untuk meminta klarifikasi bagaimana kode Piet harus ditangani :-). Saya akan mengirimkan solusi Piet juga, dulu. Kecuali pietdev cukup buggy dan untuk Piet Creator aku butuh Qt dan beberapa hal lain hanya untuk membangunnya ;-). Dan hanya menggunakan editor bitmap cukup ... rumit ...
Joey

@ Joey Piet Creator masih membutuhkan beberapa peningkatan penting agar benar-benar hebat, mudah-mudahan saya dapat menambahkannya segera. Saya akhirnya menggunakan terutama Piet Creator, dan kemudian menggunakan Paint atau GIMP untuk memindahkan blok warna di sekitar. Pietdev adalah inspirasi utama saya untuk PC. Mendapatkan umpan balik tentang PC akan menjadi hal yang luar biasa, saya akan menggunakan windows build secepatnya.
Casey

17

P untuk Perl, 10 karakter -> Skor: 14

print a..z

28
Bagaimana dengan say a..z?
mbx

14

Y untuk Yoix , 44 karakter → Nilai: 48

int x;for(;++x<27;)yoix.stdio.putchar(96+x);

12

W adalah untuk Whitespace, 72 karakter -> Skor: 82

masukkan deskripsi gambar di sini

[Sp][Sp][Sp][Tab][Tab][Sp][Sp][Sp][Sp][Tab][LF][LF][Sp][Sp][Tab][Tab][LF][Sp][LF][Sp][Tab][LF][Sp][Sp][Sp][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][Sp][LF][Sp][Sp][Sp][Sp][Tab][Tab][Tab][Tab][Sp][Tab][Tab][LF][Tab][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][LF][LF][Sp][LF][Tab][Tab][LF][LF][Sp][Sp][Sp][Sp][LF][LF][LF][LF]

Saya menghabiskan waktu lama untuk membuat benda bodoh ini bekerja semalam dan kemudian menemukan bahwa spasi putih tidak muncul sebagai kode di sini! Kemudian, ketika saya merajuk, koneksi internet saya mati. Jadi, saya mempostingnya sekarang supaya saya tidak menyia-nyiakan satu jam hidup saya semalam untuk membuatnya bekerja.


6
Saya akan berpikir bahwa itu jelas dari komentar yang sekarang dihapus bersama dengan solusi saya bahwa saya tidak pernah menulis spasi putih sebelumnya. Sepertinya tidak.
Gareth

@Mego. Apakah ada kemungkinan kita menghapus nama saya karena saya tidak ada hubungannya sama sekali dengan itu?
Gareth

11

A untuk APL,  14  11 karakter / byte * → skor 14

⎕UCS 96+⍳26

Ini berfungsi setidaknya di Dyalog dan Nars2000 .


* APL dapat ditulis dalam charset byte tunggal (lama) yang memetakan simbol APL ke nilai 128 byte atas. Oleh karena itu, untuk tujuan penilaian, program karakter N yang hanya menggunakan karakter ASCII dan simbol APL dapat dianggap sebagai panjang N byte.


1
⎕abekerja di APLX .
Adm

huruf besar dan trailing baris baru jadi ⎕Aberfungsi.
Adám

10

G untuk Golfscript, 8 karakter -> Skor: 18

123,97>+

8

R untuk R, 19 → Skor: 20

cat(letters,sep="")

Atau (20 karakter): cat (letters, sep = "")
Paolo

Tidak letterscukup bagus Saya tidak melihat spesifikasi yang menentukan output harus berupa string yang berdekatan. Tentu, contoh yang diberikan adalah dalam bentuk itu, tetapi 'trailing newline adalah opsional'?
Gaffi

@ Gaffi: Saya yakin saya memegang bahasa lain dengan standar yang sama di utas ini, yaitu, keluarannya harus "abc ... xyz" persisnya, tanpa karakter intervening). Saya kira saya bisa mengubah aturan dan memenangkan kontes saya sendiri, tetapi itu tidak akan sangat menyenangkan.
Joey Adams

8

P adalah untuk Python 2, 33 karakter -> Nilai: 39

print'%c'*26%tuple(range(97,123))

1
Ini sama panjangnya dengan print'abcdefghijklmnopqrstuvwxyz'...
nneonneo

@nneonneo Jadi ... Ini masih yang terkecil! (berbagi posisi dengan kode membosankan dan sepele lainnya).
JBernardo

7

R untuk Ruby, 13 karakter -> Skor: 17

Solusi Ruby 1.9 Matma Rex datang dengan:

print *?a..?z

Solusi Ruby 1.8 asli saya (15 karakter -> Skor: 19):

$><<[*'a'..'z']

Yang ini tidak cocok dengan kriteria? Output berisi karakter tambahan. Juga, jika tidak apa-apa, itu $><<[*?a..?z]untuk Ruby 1.9 (mengurangi 2 karakter).
Matma Rex

1
Versi benar terpendek yang bisa saya bayangkan adalah print *?a..?z. Panjangnya sama dan yang saya sarankan di atas. Kami tidak dapat menggunakan $><<karena <<memiliki beberapa aturan prioritas yang aneh dan semuanya meledak. Kami tidak dapat menggunakan patau putsbukannya printkarena mereka mencetak setiap huruf pada baris yang terpisah.
Matma Rex

Maaf, seharusnya disebutkan bahwa ini untuk Ruby 1.8. Di Ruby 1.8, Array#to_ssama dengan Array#join, jadi itu hanya akan mencetak alfabet tanpa karakter tambahan. Tetapi solusi 1.9 Anda memang lebih pendek.
Ventero

Outputnya adalah: codepad.org/atGFGVuQ
Nathan Osman

@ George: Output Anda dari Ruby 1.8 (yang dapat diverifikasi di sini: codepad.org/pvyqzaPP ). Seperti yang disebutkan di posting, ini adalah solusi untuk Ruby 1.9.
Ventero

7

F untuk Ikan (> <>), 19 karakter -> Nilai: 23

Karena itu bahasa yang sangat indah!

30"`"1+::o&p&"y"(?;

Bukankah jawaban ini menghasilkan 22 karena <>>panjangnya hanya tiga karakter, bukan empat. Apakah ada alasan Anda menggunakan nama yang lebih panjang dalam skor.
pppery

@pperry Nah nama bahasa tidak bisa keduanya dimulai dengan F dan menjadi <><.
flornquake

1
Nama bahasanya ><>, bukan<><
TuxCrafting

Ini sepertinya tidak berhasil - hanya dicetak a . tio.run/##S8sszvj/39hAKUHJUNvKKl@tQE2pUknD3vr/fwA
Chris


6

S untuk Scala, 16 karakter => skor 21

'a'to'z'mkString

18 karakter => skor 23

'a'to'z'mkString""

22 karakter => skor 27

('a'to'z')map(print _)




6

D untuk dc, 17 karakter → Nilai: 19

97[dP1+dBD>x]dsxx

output "ab" dan berhenti di versi dc 1.06.95
Wossname

@Wossname echo '97[dP1+dBD>x]dsxx' | dctidak berfungsi dalam versi dc 1.07.1
BlackCap

6

C untuk C, 36 35 karakter → Nilai: 36

main(a){for(;putchar(a+++64)-90;);}

Anda dapat menjatuhkan 2 karakter dengan mengasumsikan (argc) sama dengan satu daripada harus menginisialisasi itu.
Joey Adams

Tapi ini bahkan tidak bisa dikompilasi ...
decaviatedcaviar

Yang terbaik yang bisa saya kompilasi adalah 59, atau 42 tanpa menyertakan: #include <stdio.h> main () {for (int a = 27; - a;) putchar (96 + a);}
deceleratedcaviar

Daniel, ini bekerja dengan MSVC 10 di sini.
Joey

5

W untuk Windows PowerShell, 22 karakter → Nilai: 40

-join[char[]](97..122)

1
Hmm, tidak yakin apakah akan membuat W atau P. ini
Joey Adams

1
Secara teknis itu W, karena nama bahasa (dan produk) yang benar adalah Windows PowerShell . Ya, itu juga menggangguku.
Joey

5

P adalah untuk Python 2, 41 karakter → Nilai: 47

print''.join(chr(i+97)for i in range(26))



4

T adalah untuk Thue, 35 karakter → Nilai: 39

0::=~abcdefghijklmnopqrstuvwxyz
::=
0

4

A untuk AppleScript, 41 -> Nilai: 52

display alert"abcdefghijklmnopqrstuvwxyz"

1
Saya tahu ini sudah lama sejak posting, tetapi Anda dapat menggunakan "abcdefghijklmnopqrstuvwxyz", karena nilai kembali adalah output ke panel hasil.
Addison Crump

4

M untuk Matlab, 13 karakter, Skor 19

disp('a':'z')

M untuk Matlab, 18 karakter, Skor 24

disp(char(97:122))

1
Saya tidak punya matlab, tetapi saya pikir Anda perlu disp(..)mencegah keluaran ini ans = .
Nabb

Benar, berubah dalam jawabannya.
jpjacobs

4

B adalah untuk BrainF ***, 38 + 9 = 47

++++[>++++++<-]>[->+>++++<<]>++[->+.<]

Dapat dikurangi menjadi 31 + 9 = 40 , jika sel membungkus di 256:

++[>+>++<<+++++]>----->[<.+>++]

4

B untuk Bash: 4 + 16 = 20

printf %s {a..z}

atau 15 hanya dengan:

echo {a..z}

jika output formulir a b c ...diizinkan (seperti yang terlihat di banyak jawaban lain).


Saya kira tidak. Linefeed adalah opsional, outputnya "abcdefghijklmnopqrstuvwxyz"
pengguna tidak diketahui


3

U adalah untuk Unlambda - 8 + 79 = 87

``````````````````````````.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.zr

3

J adalah untuk J, 14 karakter -> Skor: 15

echo u:97+i.26

Kenapa repot-repot echo? u:97+i.26adalah program J yang lengkap.
Gregory Higley

5
Karena itu tidak memiliki output ketika dijalankan sebagai skrip (bagi saya, toh).
Jesse Millikan

3

B, 45 -> Nilai: 46

main(){auto i;i=95;while(i++<122)putchar(i);}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.