Ziemlich offensichtlich muss man das griechische Alphabet drucken. Aber ich dachte, ich würde es etwas interessanter machen, also gibt es eine Wendung: Wenn Ihr Programm mit einem Argument (irgendetwas) ausgeführt wird, sollte es das griechische Alphabet in Kleinbuchstaben ausgeben.
Information
- Griechisches Alphabet (Hauptstädte):
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
- Griechisches Alphabet (Kleinbuchstaben):
αβγδεζηθικλμνξοπρστυφχψω
Regeln / Anforderungen
- Jede Einreichung muss ein vollständiges Programm sein.
- Builtins zum Drucken des griechischen Alphabets sind nicht gestattet
- Es gelten Standardlücken
- Sie müssen genau das drucken, was angezeigt wird.
Wertung
Programme werden nach Bytes bewertet. Wenn Sie einen anderen Zeichensatz als UTF-8 verwenden, geben Sie dies bitte an. Versuchen Sie, die geringsten Bytes aus allen herauszuholen, das ist Code-Golf !
Testfälle
./program
==> ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
./program 1
==> αβγδεζηθικλμνξοπρστυφχψω
./program 'lower'
==> αβγδεζηθικλμνξοπρστυφχψω
./program 123897883421
==> αβγδεζηθικλμνξοπρστυφχψω
./program ""
==> αβγδεζηθικλμνξοπρστυφχψω
greek();
==> ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
greek("blah");
==> αβγδεζηθικλμνξοπρστυφχψω
greek(123);
==> αβγδεζηθικλμνξοπρστυφχψω
Einsendungen
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift unter Verwendung der folgenden Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihrer Einreichung? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie dort mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder Sie die Strafen für Dolmetscherflaggen separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Sprachnamen auch zu einem Link machen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Bestenliste
Hier ist ein Stack-Snippet, mit dem Sie sowohl eine regelmäßige Rangliste als auch eine Übersicht der Gewinner nach Sprache erstellen können.
/* Configuration */
var QUESTION_ID = 97049; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 53406; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
Antworten:
05AB1E , 16 Bytes
Verwendet die CP-1252- Codierung.
Probieren Sie es online aus!
Erläuterung
quelle
[0 ... 23]
oder[0, 24)
anstelle von[0 ... 24]
oder[0, 24]
?Ruby, 56 Bytes
Volles Programm. Ich denke nicht, dass eine Funktions- / Lambda-Antwort für diese Sprache kürzer sein wird.
Dangit, Sigma
ς
. Deshalb können wir keine schönen Dinge haben. Und Sie auch (nicht renderndes Zeichen, das als Platzhalter für "Großbuchstaben" dientς
)quelle
JavaScript (ES6),
898381 ByteWenn ein Zeichenarray akzeptabel ist, gilt für
828078 Byte:Bearbeiten: Dank @ETHproductions wurden einige Bytes gespeichert.
quelle
String.fromCharCode(...array)
ist wieder kürzer:(...a)=>String.fromCharCode(...[...Array(24)].map((_,i)=>i+(i>16)+913+32*!!a.length))
String.fromCharCode
Etagen können Sie zwei weitere Bytes wie(...a)=>String.fromCharCode(...[...Array(24)].map((_,i)=>i*1.06+913+32*!!a.length))
String.fromCharCode(...)
aber ich mag dieseni*1.06
Trick! Leider ist das Verständnis dieses Mal ein Byte länger, soweit ich das beurteilen kann.(...a)=>String.fromCharCode(...[for(_ of Array(i=24))i++*42/41+889+32*!!a.length])
(82) zu bringen.!!
, da es nur null oder eins Argumente gibt.Haskell,
114108 BytesVielen Dank an @xnor für das Speichern von 6 Bytes
Dies könnte in der Kategorie der längsten Importe gewinnen, wenn nichts anderes…
quelle
q[a,b]=[a..b]
4-mal zu definieren .getArgs>>=putStr.f
ist kürzer.CJam , 16 Bytes
Probieren Sie es online aus!
quelle
Pyke,
552120 BytesProbieren Sie es hier aus!
quelle
Eigentlich 62 Bytes
Probieren Sie es online aus!
Da ein Teil des griechischen Großbuchstabens in CP437 nicht vorhanden ist, wird diese Lösung in UTF-8 codiert und entsprechend bewertet. Hier ist ein Hexdump (reversibel mit
xxd -r
):Erläuterung:
quelle
Python 3,
807776 BytesAlte Version:
Ältere Version:
quelle
[a,a.lower()][len(sys.argv)-1]
weil die Kommentare besagen, dass es immer nur ein Argument geben wird.[a.lower(),a][-len(sys.argv)]
.R,
1049992 BytesGolfen auf der zweiten Version, die ich vorher hatte. Arbeiten Sie genauso wie in der vorherigen Version.
Vielen Dank an @JDL für das Rasieren von 7 Bytes!
Alte Versionen mit 104 Bytes:
Ich habe zwei verschiedene Lösungen mit der gleichen Byteanzahl:
Oder:
Erklärungen:
Verwendungszweck:
Aus bestimmten Gründen funktioniert es nicht mit R-Fiddle (es ändert
"
sich'
standardmäßig in, wodurch der Code einen Fehler auslöst ), aber Sie können es auf Ideone ausprobieren .quelle
+'if'(missing(x),0,32)
durch+32*!missing(x)
?Japt ,
2119 BytesTest it (keine Eingabe)
Test it (leere String-Eingabe)
Erläuterung
quelle
Scala, 82 Bytes
Ungolfed:
Leider
(('Α'to'Ρ')++('Σ'to'Ω'))
ist eineVector[Char]
, die als gedruckte werden würdeVector('Α', 'Β', ...
, so dass es in einen String mit umgewandelt werden muss ,mkString
um .Das Argumentmap
aufgerufen&
Räume zwischen zu speichern&else
,else&
und& toLower
.quelle
Gelee , 21 Bytes
Ein vollständiges Programm
TryItOnline! - Beachten Sie, dass nach dem Ausführen mit einem Argument eine Aktualisierung erforderlich ist, um ohne Argument ausgeführt zu werden.
Wie?
quelle
PowerShell v2 +, 68 Byte
Nur ASCII, aber Ausgabe in UTF-16. Konstruiert ein
char
Array der entsprechenden Zeichen, setzt-join
es zu einer Zeichenfolge zusammen und speichert es in$a
. Verwendet dann!$args.count
als Index in das Tupel, um entweder auszugeben,$a
wenn keine Argumente vorhanden sind oder$a.ToLower()
wenn mindestens ein Argument vorhanden ist.quelle
PHP, 84 Bytes
Online Version
PHP, 87 Bytes
quelle
$argc>1
ist 8 Bytes kürzer alsisset($argv[1])
und benötigt kein Leerzeichen.APL (Dyalog Extended) , 26 Bytes
Der normale Weg, mehrere Argumente an APL-Programme zu übergeben, ist eine Liste. Dieses Programm fordert Sie daher zur Eingabe einer solchen Liste auf, die 0 oder 1 Argumente enthalten kann.
Probieren Sie es online aus!
⎕
Eingabeaufforderung für die Argumentliste≢
Zählen Sie die Anzahl der Argumente (0 oder 1).~
negiere das (1 oder 0)'Ω'×
Omega damit "multiplizieren" (1 hält Großbuchstaben, 0 Falten in Kleinbuchstaben)⍳
Alle Zeichen ausΑ
-Ω
oderα
-ω
jeweils'ς'~⍨
Entfernen Sie die letzten Sigmen in Kleinbuchstaben und "Großbuchstaben"quelle
Python 2, 108 Bytes
Schrecklich Golf, vielleicht :(
Und nein, ich kann nicht verwenden
A.lower()
.Vielen Dank an 13285 (alexwlchan) für -11 Bytes.
quelle
A,a
und diese Zeichenfolgen direkt in der verwendenprint
.Mathematica, 91 Bytes
Skript. Nimmt einfach den Zeichenbereich von
Α
bisΩ
, entfernt U + 03A2 /ς
, konvertiert entweder in Kleinbuchstaben oder nicht und druckt.quelle
Perl, 39 + 3 (
-C2
Flag) =4442 Bytesquelle
JavaScript, 95 Bytes
95 Bytes, aber nur 71 Zeichen. Bytezähler . Verwenden Sie die Methode von @Neil, um festzustellen, ob Argumente übergeben werden.
quelle
Java 7, 176 Bytes
Java 8, 173 Bytes
quelle
Groovy Script,
5451 BytesBearbeiten
Umgeschaltet von
913..937
undit==930?:
nach(913..937)-930
quelle
Python 3, 80 Bytes
quelle
C #, 174 Bytes
Lazy Implementierung, kann es wahrscheinlich viel Golf spielen
quelle
PHP, 79 Bytes
generiert Unicode-HTML-Entitäten und dekodiert sie. Laufen Sie mit
-r
.quelle
Pip ,
2120 BytesDies ist ein unvergesslicher Tag. Pip hat
tiedgeschlagen Jelly! 11 Und gegen zwei andere Golflangs verloren, aber was auch immer.
Probieren Sie es online aus!
Erläuterung
quelle
tcl, 73
Demo
quelle
Netzhaut , 55 Bytes
Probieren Sie es online aus
quelle
Braingolf , 24 Bytes
Probieren Sie es online aus!
Erläuterung:
quelle
PowerShell , 81 Byte
Probieren Sie es online aus!
quelle
Perl unter Windows - Konsole hat keine Unicode-Unterstützung - (42 Bytes, einschließlich Leerzeichen)
Dies ist nicht meine Lösung, ich passe lediglich die Perl-Lösung von Denis Ibaev oben an die Windows-Konsole Perl an.
Der Code der Konsolenseite muss natürlich griechisch sein:
HINWEIS: Nur eine kleine Idee. Auf dieser Seite kann ich sehen, dass einige der Antworten CHARACTERS verwenden, die anscheinend über 255 Unicode waren. Daher benötigen diese Zeichen mindestens 2 Byte für den Code (möglicherweise 4, wenn eine Konsole mit 32-Bit-Unicode-Zeichen verwendet wird?). Wäre es nicht besser, wenn die Wettbewerbsmaßnahme die CHARACTER-Einheit (Unicode oder ASCII oder EBCDIC oder was auch immer) wäre und nicht nur BYTES? Wäre es nicht einfacher und einheitlicher (frage mich, ob dieses Adjektiv auf Englisch existiert, "unificateur" auf Französisch)?
Vorheriger fehlerhafter Code: Druckt kein Omega in Kleinbuchstaben.
Korrigierter Code (70 Zeichen):
Ich weiß, dass wir nicht die Sigma-Form "Wortende" ("ς") drucken sollen, aber da es im Altgriechischen ein Rechtschreibfehler ist, reguläres Sigma ("σ") am Ende eines Kleinbuchstaben zu verwenden, Ich entscheide mich, es zu drucken, da der Titel dieses Puzzles "Print the Greek alphabet" ist und dass dieses Zeichen Teil davon ist ...
quelle