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)

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

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

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

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

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

cat(letters,sep="")
Joey Adams
quelle
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))
JBernardo
quelle
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']
Ventero
quelle
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
Ausgabe ist: codepad.org/atGFGVuQ
Nathan Osman
@ 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"(?;
jpjacobs
quelle
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

O ist für Eule , 11 Zeichen -> Punktzahl: 14

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

Gareth
quelle
6

B steht für Befunge → 18 Zeichen

"a"::,1+10p"y"`#@_
Ninjalj
quelle
Kann in 16 Zeichen für eine Punktzahl von 23 erfolgen.
James Holderness
6

P steht für Python 2, 42 Zeichen → Punktzahl: 48

import string
print string.ascii_lowercase
Hilfsmethode
quelle
6
print 'abcdefhijklmnopqrstuvwxyz'
Charles Beattie
7
print'abcdefhijklmnopqrstuvwxyz'
Nneonneo
6

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

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

B ist für bc - 2 + 28 = 30

"abcdefghijklmnopqrstuvwxyz"
Joey Adams
quelle
4

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

for[i 97 122][type char i]
PleaseStand
quelle
4

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

0::=~abcdefghijklmnopqrstuvwxyz
::=
0
Joey
quelle
4

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

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

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

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

Ich bin für Inform 6 , 41 + 6 = 47

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

J steht für J, 14 Zeichen -> Punktzahl: 15

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