Programlama dillerinde alfabe


69

Bizim görevimiz, (İngilizce) alfabenin her harfi için, alfabeyi basan bir programın adı bu harfle başlayan bir dilde yazmak .

Giriş: yok

Çıktı:

abcdefghijklmnopqrstuvwxyz

isteğe bağlı büyük harf ve sondaki yeni satır

Kurallar :

  • Puanlama metrik programlama dili uzunluğudur ismi , artı kodunun uzunluğu. Bu nedenle, C, 1'lik bir "ceza" olarak değerlendirilirken, GolfScript, 10'luk bir ceza olarak değerlendirilecektir.
  • Cevap başına bir dil / uygulama. Birden fazla cevap teşvik edilir.
  • Programlama dili, bu yazının yazılmasından önce, Nisan 2011'in on sekizinci döneminde mevcut olmalıydı.
  • Bir programlama dilinin ilk harfi İngilizce bir harf değilse, bir zorlama olmamalıdır. Ayrı bir mektup olarak ele alınacaktır (daha az rekabet anlamına gelir).
  • Her İngilizce mektubu çözene kadar hiçbir cevap kabul edilmeyecektir.

Güncel sıralamalar:

Kimseyi özlüyorum, söyle.

Otomatik afiş (deneysel)


1
Hurdayı stderr'e basabilir miyiz?
Peter Taylor

@Peter Taylor: Çıldırmışlar. Sorunuzu cevaplamak için, evet, çöpü stderr'e basmak iyidir (stdout doğru olduğu sürece).
Joey Adams


2
*0*5AB1Eaynı *o*sabieP:?
Magic Octopus Urn

1
@MagicOctopusUrn Bu kuraldan dolayı farketmez: " Programlama dili, bu yazının yazılmasından önce , Nisan 2011'in on sekizinci döneminde mevcut
olmalıydı

Yanıtlar:


13

K K , 12 karakter içindir -> Puan: 13

`0:_ci97+!26

Elbette çözümlerinden birini A + 'ya uyarlayabilirsin, değil mi?
Joey

A + 'yı kurmak biraz korkak. Daha önce yaptım ama gerçekten öyle hissetmiyorum. (Baykuş, newLISP ve zshell hepsi anahtar teslimi idi.)
Jesse Millikan

3
Bunun k2 veya k3 olduğunu varsayıyorum. k4 / q ile 7 karakterle yapabilirsiniz 1 .Q.a;.
Aaron Davies

ihtiyacınız yok `0:veya 1@codegolf içinde
ngn

25

P, Piet - 57 kodelleri için (aslında)

Büyük versiyon (codel size = 6)

p piet için - büyük

Küçük versiyon (codel size = 1)

p, piet için - küçük

Erik'in piet tercümanı ile test edildi npietve Piet Creator ile birlikte geliştirildi .

Düzenleme : İşte bir "izleme" sürümü (birlikte oluşturulmuş npiet -tpf) böylece nasıl çalıştığını görebilirsiniz.

Uygulama sol üstte başlar ve sınırın etrafında saat yönünde döner. Üst kenar ve sağ kenar akuruludur ((97) ' nin değerini hesaplamak oldukça fazla kodlayıcı alır). Döngü alt kenardan başlar ve sol kenara gider. Değerine zulaşıldığında, program ilk bölümün sağına döner Pve sona erer.

Büyütmek ve ayrıntıları görmek için resme tıklayın


Oooh, Piet her zaman hoş biri. Etrafta çalışan Piet Piettor'un çalışan bir Windows ikilisine sahip değilsin, değil mi? (Sadece biraz daha oynamak için tüm bağımlılıkları ve önkoşulları avlamak için çok tembeldim.)
Joey

Ve aslında 400 kodlayıcı ve 57 kodlayıcı kodeksi değil mi? (Yine de Piet'i burada sayma konusunda fikir birliğine sahip olduğumuzu sanmıyorum)
Joey

1
@Joey Windows için bir Piet Piettor yapı hazırlayabilir miyim göreceğim. Orada test ettiğimden beri bir süre geçti. Kodeller konusunda haklısın. Programı bir sıraya göre dizmek isteseydim, 57 kodel olurdu (birkaç tane verir ya da alır), yukarıdaki sürüm daha göz dostu olur (diğer dillerdeki boşluk gibi). Belki de Piet sunumları hem minimal hem de göz alıcı kaynaklara sahip olmalıdır.
Casey

Peki, Piet kodunun nasıl ele alınması gerektiği hakkında açıklama istemek için meta üzerine bir soru açabilirsiniz :-). Çok uzun zaman önce Piet çözümlerini de gönderirdim. Pietdev oldukça buggy hariç ve Piet Creator için sadece inşa etmek için Qt ve birkaç başka şeyler gerekli ;-). Ve sadece bir bitmap editörü kullanarak oldukça ... hantal ...
Joey

@Joey Piet Creator'ın gerçekten harika olması için hala birkaç önemli geliştirmeye ihtiyacı var, umarım yakında bunları ekleyebilirim. Çoğunlukla Piet Creator'ı kullanıyorum ve ardından renk bloklarını hareket ettirmek için Paint veya GIMP kullanıyorum. Pietdev benim PC için temel ilham kaynağımdı. PC hakkında biraz geri bildirim almak harika olurdu, ben asap pencereleri inşa edeceğim.
Casey,

17

P Perl içindir, 10 karakter -> Puan: 14

print a..z

28
Ne hakkında say a..z?
mbx


12

W, Whitespace için, 72 karakter -> Puan: 82

görüntü tanımını buraya girin

[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]

Dün aptalca şeyi dün gece çalışmak için harcadım ve sonra boşlukların burada kod olarak gösterilmediğini öğrendim! Sonra, ben surat asarken, internet bağlantım öldü. Bu yüzden şimdi gönderiyorum sadece dün gece çalışmam için hayatımın bir saatini boşa harcamadım.


6
Şimdiden silinen yorumdan, çözümümle birlikte daha önce hiç Boşluk yazmadığımı açıkça söyleyebilirim. Görünüşe göre öyle değil.
Gareth

@Mego Bununla bir ilgim olmadığından ismimi bu ismimden silme şansımız var mı?
Gareth

11

A APL içindir,  14  11 karakter / bayt * → puan 14

⎕UCS 96+⍳26

Bu, en azından Dyalog ve Nars2000'de çalışır .


* APL, APL sembollerini üst 128 byte değerine eşleyen kendi (eski) tek bayt karakter setinde yazılabilir. Bu nedenle, puanlama amacıyla, yalnızca ASCII karakterlerini ve APL sembollerini kullanan bir N karakter programı N bayt uzunluğunda kabul edilebilir.


1
⎕aAPLX'te çalışır .
Ad’m

İsteğe bağlı büyük ve arka satır böylece ⎕Aişler.
Adám

10

G Golfscript içindir, 8 karakter -> Puan: 18

123,97>+

8

R, R, 19 içindir → Skor: 20

cat(letters,sep="")

Alternatif olarak (20 karakter): kedi (mektuplar, sep = "")
Paolo

Is not lettersyeterince iyi? Çıktıyı belirten belirtimin bitişik bir dize olması gerektiğini görmüyorum. Tabii, verilen örnek bu formda, ancak 'sondaki yeni satır isteğe bağlıdır'?
Gaffi,

@ Gaffi: Sanırım bu konudaki diğer dilleri aynı standartta tuttum, yani çıktı, "abc ... xyz" olmalı, araya girmeden karakter içermemeli). Sanırım kuralı değiştirip kendi yarışmamı kazanabilirim, ama bu çok eğlenceli olmazdı.
Joey Adams

8

P Python 2 için, 33 karakter -> Puan: 39

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

1
Bu, aynı uzunluk print'abcdefghijklmnopqrstuvwxyz'...
nneonneo

@nneonneo Yani ... Hala en küçük olanı! (pozisyonu bu diğer sıkıcı ve önemsiz kodla paylaşmak).
JBernardo

7

R Ruby içindir, 13 karakter -> Puan: 17

Bir Ruby 1.9 çözümü Matma Rex ile geldi:

print *?a..?z

Orijinal Ruby 1.8 çözümüm (15 karakter -> Puan: 19):

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

Bu kriterlere uymuyor mu? Çıktı ek karakterler içeriyor. Ayrıca, eğer sorun olmazsa, $><<[*?a..?z]Ruby 1.9 (2 karakter tıraş) olur.
Matma Rex

1
Gebe kalabildiğim en kısa doğru versiyondur print *?a..?z. Aynı uzunluk ve yukarıda önerdiğim. Kullanamayız, $><<çünkü <<bazı tuhaf öncelik kuralları vardır ve her şey patlar. Her harfi ayrı bir satırda bastıkları için kullanamaz pveya putsyerine kullanamazız print.
Matma Rex

Üzgünüm, bunun Ruby 1.8 için olduğunu söylemeliydim. Ruby 1.8'de Array#to_saynıdır Array#join, bu yüzden alfabeyi fazladan karakter kullanmadan yazdırır. Ancak 1.9 çözümünüz gerçekten daha kısa.
Ventero


@George: Çıktınız Ruby 1.8'den (burada doğrulanabilir: codepad.org/pvyqzaPP ). Yazının belirttiği gibi, bu Ruby 1.9 için bir çözümdür.
Ventero



6

S Scala içindir, 16 karakter => puan 21

'a'to'z'mkString

18 karakter => puan 23

'a'to'z'mkString""

22 karakter => puan 27

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




6

D dc içindir, 17 karakter → Puan: 19

97[dP1+dBD>x]dsxx

"ab" çıktılar ve dc sürüm 1.06.95'ten çıkar
Wossname

@Wossname 1.07.1 echo '97[dP1+dBD>x]dsxx' | dcdc sürümünde çalışıyor
BlackCap

6

C, 36 karakter 35 → Puan: 36

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

Başlamak yerine, (argc) öğesinin eşit olduğunu varsayarak 2 karakter bırakabilirsiniz.
Joey Adams

Ama bu bile derleme değil ...
yavaşladı

Derlemeye alabileceğim en iyi şey, aşağıdakileri içermeyen 59 veya 42 idi: #include <stdio.h> main () {((int a = 27; - a;) putchar (96 + a);}
deceleratedcaviar

Daniel, burada MSVC 10 ile çalışıyor.
Joey

5

W Windows PowerShell içindir, 22 karakter → Puan: 40

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

1
Hmm, bu W veya P yapmak emin değil
Joey Adams

1
Teknik olarak W, çünkü dilin (ve ürünün) doğru adı Windows PowerShell'dir . Evet, beni de rahatsız ediyor.
Joey,

5

P Python 2 için, 41 karakter → Puan: 47

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



4

T, Thue içindir, 35 karakter → Puan: 39

0::=~abcdefghijklmnopqrstuvwxyz
::=
0

4

A AppleScript içindir, 41 -> Puan: 52

display alert"abcdefghijklmnopqrstuvwxyz"

1
Gönderimden bu yana uzun bir zaman geçtiğini biliyorum , ancak "abcdefghijklmnopqrstuvwxyz"dönüş değeri sonuçlar bölmesine çıktığı için kullanabilirsiniz.
Addison Crump,

4

Matlab için M, 13 karakter, Puan 19

disp('a':'z')

Matlab için M, 18 karakter, Puan 24

disp(char(97:122))

1
Elimde matlab yok ama disp(..)bu çıktısını önlemeniz gerektiğini düşünüyorum ans = .
Nabb

Doğru, cevapta değişti.
jpjacobs

4

B BrainF *** içindir, 38 + 9 = 47

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

Hücreler 256'da sarılırsa 31 + 9 = 40'a düşürülebilir :

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

4

B Bash için: 4 + 16 = 20

printf %s {a..z}

veya sadece 15:

echo {a..z}

formun çıktısına a b c ...izin veriliyorsa (diğer birçok cevapta görüldüğü gibi).


Sanmıyorum Satır beslemesi isteğe bağlıdır, çıktı "abcdefghijklmnopqrstuvwxyz"
kullanıcı bilinmeyen kullanıcı



3

J J, 14 karakter içindir -> Puan: 15

echo u:97+i.26

Neden rahatsız ettin echo? u:97+i.26tam bir J programıdır.
Gregory Higley

5
Çünkü bir komut dosyası olarak çalıştırıldığında çıktısı yoktur (benim için zaten).
Jesse Millikan

3

B, 45 -> Puan: 46

main(){auto i;i=95;while(i++<122)putchar(i);}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.