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)

Joey Adams
sumber
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
Jesse Millikan
sumber
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

Casey
sumber
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
Ventero
sumber
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);
Joey
sumber
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.

Gareth
sumber
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.

jpjacobs
sumber
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>+
Ventero
sumber
8

R untuk R, 19 → Skor: 20

cat(letters,sep="")
Joey Adams
sumber
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))
JBernardo
sumber
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']
Ventero
sumber
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"(?;
jpjacobs
sumber
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

O adalah untuk Burung Hantu , 11 karakter -> Nilai: 14

a[%)1+%z>]!
Jesse Millikan
sumber
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 _)

Gareth
sumber
6

B untuk Befunge → 18 karakter

"a"::,1+10p"y"`#@_
ninjalj
sumber
Dapat dilakukan dalam 16 karakter , dengan skor 23.
James Holderness
6

P adalah untuk Python 2, 42 karakter → Nilai: 48

import string
print string.ascii_lowercase
Metode Penolong
sumber
6
print 'abcdefhijklmnopqrstuvwxyz'
Charles Beattie
7
print'abcdefhijklmnopqrstuvwxyz'
nneonneo
6

D untuk dc, 17 karakter → Nilai: 19

97[dP1+dBD>x]dsxx
ninjalj
sumber
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;);}
Joey
sumber
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)
Joey
sumber
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))
Oleh Prypin
sumber
4

B adalah untuk bc - 2 + 28 = 30

"abcdefghijklmnopqrstuvwxyz"
Joey Adams
sumber
4

L untuk Logo, 26 karakter → Nilai: 30

for[i 97 122][type char i]
Tolong berdiri
sumber
4

T adalah untuk Thue, 35 karakter → Nilai: 39

0::=~abcdefghijklmnopqrstuvwxyz
::=
0
Joey
sumber
4

A untuk AppleScript, 41 -> Nilai: 52

display alert"abcdefghijklmnopqrstuvwxyz"
Lowjacker
sumber
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))
jpjacobs
sumber
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:

++[>+>++<<+++++]>----->[<.+>++]
Ry-
sumber
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).

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

Saya untuk Inform 6 , 41 + 6 = 47

[Main i;for(i=26:i--:)print(char)'z'-i;];
Joey Adams
sumber
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
Joey Adams
sumber
3

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

echo u:97+i.26
Jesse Millikan
sumber
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);}
Lowjacker
sumber