Das Alphabet in Programmiersprachen


69

Unsere Aufgabe ist es, für jeden Buchstaben des (englischen) Alphabets ein Programm zu schreiben, das das Alphabet in einer Sprache druckt, deren Name mit diesem Buchstaben beginnt.

Eingabe: keine

Ausgabe:

abcdefghijklmnopqrstuvwxyz

optional Großbuchstaben und abschließende Zeilenumbrüche

Regeln :

  • Die Scoring - Metrik ist die Länge des Programmiersprache Namen , sowie die Länge des Codes. Daher wird C mit einer "Strafe" von 1 bewertet, während GolfScript mit einer Strafe von 10 bewertet wird.
  • Eine Sprache / Implementierung pro Antwort. Mehrfachnennungen sind erwünscht.
  • Die Programmiersprache sollte vor dem Schreiben dieses Beitrags am 18. April 2011 existieren.
  • Wenn der erste Buchstabe eines Programmiersprachennamens kein englischer Buchstabe ist, sollte er nicht zu einem Buchstaben zusammengefügt werden. Es wird als separater Buchstabe behandelt (was weniger Wettbewerb bedeutet).
  • Keine Antwort wird akzeptiert, bis jeder englische Brief eine Lösung hat.

Aktuelle Rangliste:

Sag mir, ob ich jemanden vermisse.

Automatische Bestenliste (experimentell)


1
Dürfen wir Junk-to-Stderr drucken?
Peter Taylor

@ Peter Taylor: Verrückt werden. Um Ihre Frage zu beantworten, ist es in Ordnung, Junk an stderr zu drucken (solange stdout korrekt ist).
Joey Adams


2
Ist *0*5AB1Edas gleiche wie *o*sabie: P?
Magic Octopus Urn

1
@MagicOctopusUrn Wäre aufgrund dieser Regel nicht von Bedeutung: " Die Programmiersprache hätte vor dem Schreiben dieses Beitrags am 18. April 2011 existieren müssen . "
Kevin Cruijssen,

Antworten:


13

K steht für K , 12 Zeichen -> Punktzahl: 13

`0:_ci97+!26

Sicher können Sie eine Ihrer Lösungen an A + anpassen, oder?
Joey

Das Einrichten von A + ist etwas flippig. Ich habe es schon einmal gemacht, aber ich fühle mich nicht wirklich danach. (Owl, newLISP und zshell waren alle schlüsselfertig.)
Jesse Millikan

3
Ich nehme an, das ist k2 oder k3. in k4 / q kannst du es in 7 Zeichen mit machen 1 .Q.a;.
Aaron Davies

du brauchst nicht `0:oder 1@im codegolf
ngn 24.01.18

25

P ist (eigentlich) für Piet - 57 Codels

Große Version (Codelgröße = 6)

p ist für piet - big

Kleine Version (Codelgröße = 1)

p ist für piet - klein

Getestet mit Eriks Piet-Interpreten npietund entwickelt mit Piet Creator .

Bearbeiten : Hier ist eine "Trace" -Version (generiert mit npiet -tpf), damit Sie sehen können, wie es funktioniert.

Die Ausführung beginnt oben links und verläuft im Uhrzeigersinn um die Grenze. Die Oberkante und die rechte Kante werden eingerichtet (die Berechnung des Werts von a(97) benötigt einige Codels). Die Schleife beginnt am unteren Rand und endet am linken Rand. Wenn der Wert von zerreicht ist, geht das Programm nach rechts in den Querschnitt unter dem ersten Pund endet.

Klicken Sie auf das Bild, um es zu vergrößern und Details zu sehen


Oooh, Piet ist immer nett. Und Sie haben zufällig keine funktionierende Windows-Binärdatei von Piet Creator, oder? (Ich war zu faul, um alle Abhängigkeiten und Voraussetzungen
Joey

Und nicht , dass tatsächlich 400 codels und 57 Codierung codels? (Ich glaube nicht, dass wir einen Konsens darüber hatten, wie Piet hier gezählt wird)
Joey

1
@Joey Ich werde sehen, ob ich einen Build von Piet Creator für Windows erstellen kann. Es ist schon eine Weile her, dass ich es dort getestet habe. Sie haben Recht mit den Codels. Wenn ich das Programm in einer Zeile auslegen würde, wären es 57 Codels (einige geben oder nehmen), die obige Version ist augenfreundlicher (wie Whitespace in anderen langs). Vielleicht sollten Piet-Beiträge sowohl minimale als auch auffällige Quellen haben. Wir entscheiden uns besser, weil ich viel mehr Piet-Antworten plane :)
Casey

Nun, Sie könnten eine Frage zu Meta öffnen, um zu klären, wie mit Piet-Code umgegangen werden soll :-). Ich hätte vor langer Zeit auch Piet-Lösungen eingereicht. Abgesehen davon, dass Pietdev ziemlich fehlerhaft war und ich für Piet Creator Qt und ein paar andere Dinge brauchte, nur um es zu bauen ;-). Und nur mit einem Bitmap-Editor ist ziemlich ... umständlich ...
Joey

@ Joey Piet Creator benötigt noch einige wichtige Verbesserungen, um wirklich großartig zu sein. Hoffentlich kann ich diese bald hinzufügen. Am Ende verwende ich hauptsächlich Piet Creator und dann Paint oder GIMP, um Farbblöcke zu verschieben. Pietdev war meine Hauptinspiration für den PC. Es wäre toll, wenn Sie ein Feedback zum PC erhalten würden. Ich werde es so schnell wie möglich unter Windows erstellen.
Casey

17

P steht für Perl, 10 Zeichen -> Punktzahl: 14

print a..z

28
Was ist say a..z?
mbx

14

Y steht für Yoix , 44 Zeichen → Punktzahl: 48

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

12

W steht für Whitespace, 72 Zeichen -> Score: 82

Bildbeschreibung hier eingeben

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

Ich habe eine Ewigkeit damit verbracht, dieses blöde Ding letzte Nacht zum Laufen zu bringen und dann festgestellt, dass hier kein Leerzeichen als Code angezeigt wird! Dann, während ich schmollte, brach meine Internetverbindung ab. Also poste ich es jetzt, nur damit ich letzte Nacht keine Stunde meines Lebens damit verschwendet habe, es zum Laufen zu bringen.


6
Ich hätte gedacht, dass es aus dem jetzt gelöschten Kommentar zusammen mit meiner Lösung offensichtlich war, dass ich noch nie zuvor einen Whitespace geschrieben habe. Scheinbar nicht.
Gareth

@Mego Gibt es eine Chance, dass wir meinen Namen entfernen, da ich überhaupt nichts damit zu tun hatte?
Gareth

11

A ist für APL,  14  11 Zeichen / Byte * → Punktzahl 14

⎕UCS 96+⍳26

Dies funktioniert zumindest in Dyalog und Nars2000 .


* APL kann in einem eigenen (älteren) Einzelbyte-Zeichensatz geschrieben werden, der APL-Symbole den oberen 128-Byte-Werten zuordnet. Aus diesem Grund kann ein Programm mit N Zeichen , das nur ASCII-Zeichen und APL-Symbole verwendet, als N Byte lang betrachtet werden.


1
⎕aarbeitet in APLX .
Adám

Groß- und nachlauf Newline optional so ⎕Afunktioniert.
Adám

10

G ist für Golfscript, 8 Zeichen -> Punktzahl: 18

123,97>+

8

R steht für R, 19 → Punktzahl: 20

cat(letters,sep="")

Alternativ (20 Zeichen): cat (Buchstaben, sep = "")
Paolo

Ist nicht lettersgut genug Ich sehe nicht, dass die Angabe der Ausgabe eine zusammenhängende Zeichenfolge sein muss. Sicher, das angegebene Beispiel ist in dieser Form, aber die nachfolgende Zeile ist optional.
Gaffi

@Gaffi: Ich glaube, ich habe in diesem Thread andere Sprachen auf dem gleichen Standard gehalten, nämlich, die Ausgabe muss exakt "abc ... xyz" sein, ohne dazwischenliegende Zeichen. Ich nehme an, ich könnte die Regel ändern und meinen eigenen Wettbewerb gewinnen, aber das würde keinen Spaß machen.
Joey Adams

8

P ist für Python 2, 33 Zeichen -> Score: 39

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

1
Dies ist die gleiche Länge wie print'abcdefghijklmnopqrstuvwxyz'...
Nneonneo

@nneonneo Also ... es ist immer noch das kleinste! (Teilen Sie die Position mit diesem anderen langweiligen und trivialen Code).
JBernardo

7

R steht für Ruby, 13 Zeichen -> Punktzahl: 17

Eine Ruby-1.9-Lösung von Matma Rex :

print *?a..?z

Meine ursprüngliche Ruby 1.8-Lösung (15 Zeichen -> Punktzahl: 19):

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

Dieser entspricht nicht den Kriterien? Die Ausgabe enthält zusätzliche Zeichen. Wenn es in Ordnung ist, ist es auch $><<[*?a..?z]für Ruby 1.9 (2 Zeichen weniger).
Matma Rex

1
Die kürzeste richtige Version, die ich mir vorstellen kann, ist print *?a..?z. Es ist die gleiche Länge und die, die ich oben vorgeschlagen habe. Wir können es nicht verwenden, $><<da <<es einige verrückte Vorrangregeln gibt und alles in die Luft geht. Wir können nicht verwenden poder putsstatt , printda sie jeden Buchstaben auf separate Zeile zu drucken.
Matma Rex

Sorry, hätte erwähnen sollen, dass dies für Ruby 1.8 ist. In Ruby 1.8 Array#to_sist dies dasselbe wie Array#join, sodass nur das Alphabet ohne zusätzliche Zeichen gedruckt wird. Aber Ihre 1.9-Lösung ist in der Tat kürzer.
Ventero


@ George: Ihre Ausgabe stammt aus Ruby 1.8 (kann hier überprüft werden: codepad.org/pvyqzaPP ). Wie der Beitrag erwähnt, ist dies eine Lösung für Ruby 1.9.
Ventero

7

F ist für Fisch (> <>), 19 Zeichen -> Punktzahl: 23

Weil es eine verdammt schöne Sprache ist!

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

Wird diese Antwort nicht mit 22 bewertet, weil sie <>>nur drei Zeichen lang ist, nicht vier. Gibt es einen Grund, warum Sie den längeren Namen in der Partitur verwendet haben?
Paprika

@ppperry Nun, der Name der Sprache kann nicht mit einem F beginnen und auch nicht sein <><.
Flornquake

1
Der Name der Sprache ist ><>nicht<><
TuxCrafting

Dies scheint nicht zu funktionieren - es wird nur gedruckt a. tio.run/##S8sszvj/39hAKUHJUNvKKl@tQE2pUknD3vr/fwA
Chris


6

S steht für Scala, 16 Zeichen => 21 Punkte

'a'to'z'mkString

18 Zeichen => 23 Punkte

'a'to'z'mkString""

22 Zeichen => 27 Punkte

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




6

D steht für dc, 17 Zeichen → Punktzahl: 19

97[dP1+dBD>x]dsxx

gibt "ab" aus und wird in der DC-Version 1.06.95
Wossname

@ Wossname echo '97[dP1+dBD>x]dsxx' | dcfunktioniert in der DC-Version 1.07.1
BlackCap

6

C steht für C, 36 35 Zeichen → Punktzahl: 36

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

Sie können 2 Zeichen löschen, indem Sie annehmen, dass ein (argc) gleich eins ist, anstatt es initialisieren zu müssen.
Joey Adams

Aber das ist nicht einmal zu kompilieren ...
deceleratedcaviar

Beste , was ich bekommen konnte, war zu kompilieren 59 oder 42 ohne umfassen: #include <stdio.h> main () {for (int a = 27; - a;) putchar (96 + a);}
deceleratedcaviar

Daniel, hier funktioniert es mit MSVC 10.
Joey

5

W steht für Windows PowerShell, 22 Zeichen → Punktzahl: 40

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

1
Hmm, ich bin mir nicht sicher, ob ich dieses W oder P machen soll.
Joey Adams

1
Technisch gesehen ist es W, da der korrekte Name der Sprache (und des Produkts) Windows PowerShell ist . Ja, es nervt mich auch.
Joey

5

P steht für Python 2, 41 Zeichen → Punktzahl: 47

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


4

L steht für Logo, 26 Zeichen → Punktzahl: 30

for[i 97 122][type char i]

4

T steht für Do, 35 Zeichen → Punktzahl: 39

0::=~abcdefghijklmnopqrstuvwxyz
::=
0

4

A ist für AppleScript, 41 -> Score: 52

display alert"abcdefghijklmnopqrstuvwxyz"

1
Ich weiß, dass dies eine lange Zeit seit dem Posten ist, aber Sie können es verwenden "abcdefghijklmnopqrstuvwxyz", da der Rückgabewert in den Ergebnisbereich ausgegeben wird.
Addison Crump

4

M für Matlab, 13 Zeichen, Score 19

disp('a':'z')

M für Matlab, 18 Zeichen, Score 24

disp(char(97:122))

1
Ich habe kein Matlab zur Hand, aber ich denke, Sie müssen disp(..)diese Ausgabe verhindern ans = .
Nabb

Richtig, in der Antwort geändert.
Jpjacobs

4

B ist für BrainF ***, 38 + 9 = 47

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

Kann auf 31 + 9 = 40 reduziert werden , wenn die Zellen bei 256 umlaufen:

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

4

B steht für Bash: 4 + 16 = 20

printf %s {a..z}

oder 15 mit nur:

echo {a..z}

ob die Ausgabe des Formulars a b c ...erlaubt ist (wie in vielen anderen Antworten zu sehen).


Ich glaube nicht. Zeilenumbruch ist optional, Ausgabe ist "abcdefghijklmnopqrstuvwxyz"
Benutzer unbekannt


3

U ist für 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 steht für J, 14 Zeichen -> Punktzahl: 15

echo u:97+i.26

Warum sich die Mühe machen echo? u:97+i.26ist ein vollständiges J-Programm.
Gregory Higley

5
Weil das keine Ausgabe hat, wenn es als Skript ausgeführt wird (für mich jedenfalls).
Jesse Millikan

3

B, 45 -> Spielstand: 46

main(){auto i;i=95;while(i++<122)putchar(i);}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.