Thanksgiving in den Vereinigten Staaten steht am 24. November an. Viele Menschen haben ein großes Abendessen mit ihren Familien, traditionell mit Truthahn und vielen Beilagen. Dies bedeutet normalerweise, dass die Familienmitglieder koordinieren müssen, wer die verschiedenen Gerichte mitbringt. In dieser Herausforderung besteht das Ziel darin , einen Polyglot zu schreiben , der in jeder Sprache , in der er ausgeführt wird, ein anderes Gericht ausgibt.
Speisekarte
(Aus Wikipedia ausgewählt . Falls es nicht offensichtlich ist, ist jede Zeile ein Element.)
turkey
stuffing
dressing
cranberry sauce
mashed potatoes
gravy
winter squash
sweet potatoes
corn
green beans
green bean casserole
mac and cheese
macaroni and cheese
salad
rolls
biscuits
corn bread
pumpkin pie
apple pie
mincemeat pie
sweet potato pie
pecan pie
apple cider
sweet tea
Regeln
- Jede Einreichung muss in mindestens 3 Sprachen ausgeführt werden , von denen jede einen anderen Menüpunkt ausgeben muss . Sie dürfen nicht mehrere Versionen derselben Sprache verwenden (z. B. Python 2 und Python 3 können nicht in derselben Antwort verwendet werden).
- Jeder Eintrag muss in der Codierung jeder Sprache die gleichen Bytes enthalten. Zum Beispiel
ɱ
ist Byte0x1D
in Jelly der Codierung , das entspricht¢
in 05AB1E der Codierung . - Verschiedene Sprachen können unterschiedliche Ausgabemethoden verwenden, aber Einträge müssen vollständige Programme in allen Sprachen sein und einer unserer standardmäßig zulässigen E / A-Methoden folgen .
- Es dürfen keine Programme Eingaben machen, aber eines der Programme kann auf STDERR drucken oder Laufzeit- / Kompilierungsfehler und Warnungen ausgeben, solange die korrekte Ausgabe auf STDOUT oder in einer Datei gedruckt wird.
- Groß- und Kleinschreibung spielen keine Rolle. Beispielsweise
GreenbeAN S
würde eine Ausgabe von immer noch als zählengreen beans
. - Da die zentrale Schale jedes 1 amerikanischen Thanksgiving - Essen Truthahn ist, eine Sprache muss Ausgabe
turkey
(ohne Berücksichtigung Fall und Leerzeichen).
Wertung
Die Einsendung, die eindeutige gültige Ausgaben in den meisten Sprachen liefert, gewinnt. Bei einem Gleichstand gewinnt der kürzeste der gebundenen Einträge in Bytes.
1. Ja, der Truthahn ist nicht das einzige Hauptgericht , aber wir werden so tun, als wäre es das.
quelle
cornbread
Antworten:
Pyke, Python, Python 2, Foo, Brain ****, GolfScript, Tatsächlich, <> <, Gol <> <, Ernsthaft, Befunge, Spaltung, Heuhaufen, 13 Sprachen, 546 Bytes
Als ich sah , die andere
101112 Sprach Antwort hatte ich eine extra hinzufügeneinzwei3. Ich auch unter Berücksichtigung Pyth fallen ernst bin , wenn nur auf Byte zu speichern. (im Moment 162 von ihnen)Pyke: Probieren Sie es hier!
rolls
Relevante Codezeile:
Pyth: Probieren Sie es hier!
gravy
Relevante Codezeile:
Es ist alles
)
für Pyth, damit es ohne Fehler bei keiner Eingabe kompiliert werden kann.Python 2:
corn
Zeile 1 ist ein ganzer Kommentar
Zeile 2 gibt "Mais" aus und hat dann einen Kommentar
Zeile 3 enthält ein Zeichenfolgenliteral und anschließend einen Kommentar
Ab Zeile 4 sind Kommentare
Foo: Probieren Sie es online!
biscuits
Foo druckt alles aus, was in doppelten Anführungszeichen (
"
) steht. In diesem Fall habe ich darauf geachtet, nur Sprachen einzubeziehen, die mit anderen Formen der Zeichenfolgeneingabe umgehen können (Sonderfall für Befunge). Wenn es nach dem Finale noch Text"
gäbe, würde dieser auch gedruckt.Gehirn ****: Probieren Sie es online!
salad
Ich habe die Ausgabe des konstanten Stringgenerators kopiert. Ich musste mit allen
.
Charakteren fliehen,.q
damit es mit Pyth undw.
Pyke spielte. Ich habe einige zusätzliche-
Zeichen hinzugefügt , damit die Zellen die richtigen Punkte erreichen, bevor ein anderes.
Zeichen in der 3. Zeile gedruckt wirdGolfScript: Probieren Sie es online!
cornbread
In GolfScript
#
steht ein Kommentar bis zum Zeilenende.Was der GolfScript-Interpreter sieht:
Nimmt in GolfScript aus irgendeinem Grund
print
eine Zeichenfolge und druckt sie ohne Zeilenumbruch. Nur zu habenbread
ist genug, um es auch zu drucken.Eigentlich: Online ausprobieren!
macandcheese
Relevante Zeile:
<> <: Nur Kopieren + Einfügen
turkey
Gol <> <: Probieren Sie es online!
stuffing
As <> <except
`
überspringt das erste'
und gibt nur genügend Zeichen zum Drucken ausstuffing
Ernsthaft: Probieren Sie es online!
macaroniandcheese
Relevante Zeile:
Befunge: Online ausprobieren !
sweettea
Code, der betrachtet wird
Fission: Probieren Sie es online!
dressing
Code sah an:
Davon werden verwendet:
Haystack (2015) :
PECANPIE
(mit EXTRA Newlines!)Davon etwas Funktionales tun:
Ich konstruiere jeden ASCII-Codepunkt für die Buchstaben in
PECANPIE
Großbuchstaben, da sie alle unter 100 liegen. Ich drucke sie dann alle als Zeichen aus.quelle
macaroni and cheese
kann ausgegeben werden alsmacaroniandcheese
)cornrolls
? Das stand nicht auf der Speisekarte ...CJam , 05AB1E , Dip , V , 4 Sprachen,
3634 Bytes2 Bytes gespart dank @DrMcMoylex!
Ursprünglicher 36-Byte-Code:
Nach dem
&
und vor demd
steht ein<ESC>
, welches 1 Byte ist. Der Code mit den aufgedeckten Zeichen der Breite Null sieht also folgendermaßen aus:CJam
(
<ESC>
wird nicht angezeigt)Probieren Sie es online! Ausgänge
turkey
05AB1E
(
<ESC>
wird nicht angezeigt)Probieren Sie es online! Ausgänge:
corn
V
(
<ESC>
wird angezeigt)Probieren Sie es online! gibt eine neue Zeile gefolgt von aus
salad
Tauchen
(
<ESC>
wird nicht angezeigt)Ausgänge
gravy
Am besten bearbeiten Sie die Quelldatei und ändern die letzte Zeile in
dip.py
zu
Achten Sie darauf, das Escape-Zeichen-Literal einzuschließen !. Nun wird der Code, wie er ist, an den Interpreter übergeben, damit er ihn verstehen kann (
"
muss wie folgt maskiert werden\"
). Wenn Sie es nun über die Befehlszeile ausführen, werden der tatsächliche Code und die Ausgaben interpretiertgravy
.quelle
pop "corn"
in der Erklärungddi
zuS
MATL / Golfscript / 05AB1E / CJam : 4 Sprachen,
3433 BytesTURKEY
.rolls
.corn
.cornbread
.quelle
tUrKEY
?C, sh, Python 3, Nim, Julia, Brainf ** k - 6 Sprachen,
211209 BytesSprachen zu Menüpunkten:
turkey
gravy
biscuits
rolls
salad
corn
Julia dank @kvill hinzugefügt!
quelle
#include
(funktioniert ingcc
).puts
println
Überall umbenennen , außer inmain()
. Füge Julias mehrzeiligen Kommentaröffner#=
oben hinzua='''
und ändere ihn#*/
zu# =##*/
.exit
indem Sie das einfache Anführungszeichen entfernen und mit der vorherigen Zeile verbinden (a=''''
).sh
wird Warnungen ausgeben, aber dies ist AFAIU erlaubt. Und oh,println[T](s:T)=echo"rolls"
arbeitet für Nim. Schöne Antwort mit all meinen Lieblingssprachen zusammen!ferNANDo /> <> / Gol> <> / 05AB1E / 2sable, 5 Sprachen, 178 Byte
turkey
salad
dressing
rolls
corn
quelle
Befunge-98 , > <> , V , Python 2, 05AB1E , Gol> <> , Foo , Haystack (Version 2015) , GolfScript , BF, Fission , Minkolang 0.15 , Seriously , Axo : 14 Sprachen, 381 Byte
Dies ist eine gemeinsame Antwort mit BlueEyedBeast
Ich habe mich für einen 2D-Ansatz entschieden ... Ja, es gibt 7 2D-Esolangs!
Ich habe mich von der Antwort von BlueEyedBeast (Foo, GolfScript) für weitere Sprachen inspirieren lassen.
<ESC>
ist das buchstäbliche Zeichen für Escape .Befunge-98
Probieren Sie es online! Ausgänge
corn
> <>
Befehle werden in der Reihenfolge angezeigt, in der sie angezeigt werden
Probieren Sie es online! (Nur Kopieren und Einfügen)
sweettea
V
Probieren Sie es online! Ausgänge
applepie
(die Ausführung kann ca. 20 Sekunden dauern)Python 2
Probieren Sie es online! (Nur Kopieren und Einfügen)
biscuits
05AB1E
Probieren Sie es online! Ausgänge
salad
Gol> <>
Befehle werden in der Reihenfolge angezeigt, in der sie angezeigt werden
Probieren Sie es online! Ausgänge
turkey
Foo
Foo gibt alles in doppelten Anführungszeichen aus. Deshalb habe ich darauf geachtet, in den anderen Sprachen keine doppelten Anführungszeichen zu verwenden. Da
"stuffing"
es sich um doppelte Anführungszeichen handelt, wird es gedruckt.Probieren Sie es online! gibt aus
stuffing
und hat dann einen FehlerHeuhaufen (2015)
Dies verwendet Haystacks Interpreter 2015 (nicht 2016), da die neuere Version ungültig ist. Der Dolmetscher dafür ist
haystack.py
und nichthaystack_new.py
Befehle werden in der Reihenfolge angezeigt, in der sie angezeigt werden
Dieses Programm gibt aus
und eine neue Zeile nach dieser Ausgabe (hey, Whitespace spielt keine Rolle!)
GolfScript
Probieren Sie es online! Ausgänge
pecanpie
BF
Ich habe https://copy.sh/brainfuck/text.html verwendet , um Text in BF zu konvertieren. Obwohl es viele
,
Eingabeanweisungen gibt, wird der BF-Code unabhängig davon ausgeführt.Probieren Sie es online! Ausgänge
gravy
Fission
Damit ein Fission-Programm gestartet werden kann, muss ein Atom erzeugt werden. Wir sehen dies in der dritten Zeile:
Probieren Sie es online! Ausgänge
cornbread
Minkolang v0.15
Probieren Sie es online! Ausgänge
applecider
Ernsthaft
Probieren Sie es online! Ausgänge
dressing
Axo
(Befehle werden in der Reihenfolge angezeigt, in der sie angetroffen werden.)
Probieren Sie es online! Ausgänge
pumpkinpie
quelle
$,,,,
anstatt das auszugeben1
(ohne das bytecount zu ändern), aber dann müsste ich alle Permalinks ändern ... :)Pushy , Python und Brainfuck
Dies ist meine erste Polyglotte, also gehen Sie nicht zu sehr auf mich ein ... Für diejenigen, die über die Anzahl der Bytes jammern, sind es 77 Bytes, aber das ist nur für den Tiebreaker relevant.
Pushy druckt 'Truthahn' mit einem führenden Zeilenumbruch (sowie einer Nachricht an
STDERR
):Python gibt "Soße" aus , da die erste und die letzte Zeile als Kommentare behandelt werden.
Brainfuck ignoriert alle anderen Zeichen und abgesehen von denen in der letzten Zeile, die das Wort "Mais" erzeugen und drucken .
quelle
Pip , BF , oOo CODE , > <> , Befunge-93 ( Quirkster- Implementierung), Ouroboros , /// : 7 Sprachen, 175 Bytes
Pip
Probieren Sie es online aus
Eine Reihe von Ausdrücken, die stillschweigend verworfen werden (von denen die meisten Warnungen generieren, wenn Warnungen aktiviert sind), wobei der Ausdruck
"sTufFINg"
am Ende gedruckt wird.BF
Probieren Sie es online aus
Alles außer
>-[--[<]>+>-]<.++++++++++++.+++.----.,,,,
Kommentare. Dieser Code erzeugt99
(der Zeichencode fürc
) über die kürzeste Methode auf aufgeführten esolangs.org , ändert es danno
,r
undn
. Es wird,,,,
versucht, vier Zeichen einzugeben, dies hat jedoch keine Auswirkungen.oOo CODE
Alles außer Buchstaben wird ignoriert. Gruppieren Sie die Buchstaben in drei, lautet der Code wie folgt:
und übersetzt in diesen BF-Code ( versuchen Sie es mit Martins Retina-Übersetzer ):
welche Ausgänge
rolls
. (Und interessanterweise ist es kürzer als die oben angegebene BF für die Ausgabecorn
, auch wenn ein><
No-Op hinzugefügt wurde, um die Großschreibung korrekt auszurichten.)> <>
Führen Sie hier> <> Code aus
Der wichtige Teil des Codes:
Die IP wird nach oben reflektiert, umbrochen und nach rechts gesendet.
"YVaRg"
drückt die Zeichencodes vongRaVY
.ooooo
gibt fünf Buchstaben aus und;
beendet das Programm.Befunge-93
Der Code hängt von undefiniertem Verhalten ab und funktioniert wahrscheinlich nur in dieser Implementierung .
Der wichtige Teil des Codes:
/
ist Teilung. Der Stack ist leer, daher wird die von mir verwendete JavaScript-Implementierung0
durch0
und geteiltNaN
.'
ist ein unbekannter Charakter. Die Implementierung, die ich verwende, behandelt normalerweise nicht erkannte Zeichen als Reflect-Befehle. (Für eine weniger implementierungsabhängige Version wäre ein Ersatz denkbar1_
.) Die IP-Adresse wird also erneut nach links verschoben,NaN
durch geteilt0
(getNaN
) und am anderen Ende der Zeile umgebrochen.Jetzt
"yekRut"
(RTL bewegen) drückt die Zeichencodes vontuRkey
und,,,,,,
gibt sie aus. Beendet schließlich@
das Programm.Ouroboros
Probieren Sie es hier aus
Jede Codezeile ist eine "Schlange", die unabhängig ausgeführt wird.
Schlange 1
Da es keine Ausgabeanweisungen gibt, ist der einzige wichtige Teil des Codes
f(
:f
Drückt15
und(
verschluckt so viele Zeichen vom Ende der Schlange. Der Code endet nun nach.O
. Die Ausführung wird bis zum Ende der Schlange fortgesetzt und zum Anfang zurückgeschleift. Jedes Mal wird die Schlange kürzer, bis sie schließlich(
verschluckt wird. Da die IP gerade gefressen wurde, stoppt die Schlange die Ausführung.Schlange 2
"saLaD"
schiebt seine Zeichencodes von A nach B;1/
dividiert den Zeichencode vonr
durch1
, lässt ihn unverändert undooooo
gibt fünf Zeichen aus.;
löscht einen Gegenstand (no-op, da der Stapel bereits leer ist).1(
schluckt den Anweisungszeiger und hält an.Schlange 3
"YVaRg"
drückt einige Zeichencodes;(
schluckt dann eine Anzahl von Zeichen, die der Spitze des Stapels entspricht, der zufällig89
der Zeichencode von istY
. Das Essen von 89 Zeichen reicht aus, um die IP zu verschlucken und die Ausführung anzuhalten.///
Probieren Sie es online mit meiner Pip-Implementierung von ///
/'//
löscht alle einfachen Anführungszeichen aus dem Rest des Programms (was nichts bewirkt, weil es keine gibt). Als nächstes wirdbisCuItS
ausgegeben, wie sie ist. Schließlich ist der Rest des Codes eine unvollständige Ersetzung - es gibt nur zwei der drei erforderlichen Schrägstriche -, sodass nichts unternommen wird.quelle
Cubix, Pushy, Brainfuck, V, Python 2 - 5 Sprachen,
8985 BytesMein zweiter Polyglott - nicht sehr golfen, aber es funktioniert:
(Beachten Sie, dass dies
␛
das wörtliche Escape-Byte darstellt.x1B
)corn
turkey
ROLLS
gravy
salad
Cubix
Testen Sie das Programm online!
Cubix ist eine Sprache des Herausforderungsautors ETHproductions. Der Cubix-Interpreter liest den Code folgendermaßen:
Der Code wird folgendermaßen ausgeführt:
'salad
- führt einige irrelevante XOR-Operationen im Stack aus, was zu115, 0, 0
'#;
- Schieben Sie den Zeichencode von#
und legen Sie ihn erneut ab (no-op)"nroc"
- Schieben Sie die Zeichencodes für "Mais"w
- verschiebt die IP in die Schleife in der nächsten Zeile darunter:!@o;
- letzten Eintrag drucken und einfügen (abbrechen, wenn der Eintrag 0 ist)"-[--";;;;
- schiebe diese Zeichen und lösche sie (no-op){{
- Nein-OpAufdringlich
Testen Sie das Programm online!
Pushy ist meine eigene Sprache und führt den Code folgendermaßen aus:
Brainfuck
Testen Sie das Programm online!
Brainfuck ignoriert alle Zeichen, die nicht in der Anweisungsliste enthalten sind.
Welche druckt
ROLLS
. Beachten Sie, dass hierfür ein Interpreter mit umhüllenden Zellen erforderlich ist, z. B. der bereitgestellte.V (Vim Sprache)
Testen Sie das Programm online!
V wurde von DJMcMayhem kreiert, einem unserer besten Code-Golfer.
V ist eine programmbasierte Version des Texteditors Vim. Die meisten Zeichen vor dem
ESC
werden in die "Datei" geschrieben, aber␛ddgigravy
alles wird gelöscht und stattdessen "Soße" eingefügt. Der Inhalt der Datei am Ende des Programms wird gedruckt.Python 2
Testen Sie das Programm online!
Python ist eine meiner bevorzugten praktischen Sprachen. Da
#
es sich bei Python um einen Kommentar handelt, wird der größte Teil des Programms ignoriert. Der Code lautet wie folgt:quelle
'salad'#
der Zeichencode vons
, 0, 0 und der Zeichencode von gedrückt#
, dann wird;
der Stapel geöffnet und bleibt bei115,0,0
.Python / QBasic / Pip , 3 Sprachen, 41 Bytes
Weitere Sprachen möglicherweise TBA.
Python
1
ist nur ein Ausdruck, der verworfen wird.#
startet einen Kommentar.print("turkey")
tut, was es sagt, und"salad"
ist ein weiterer Ausdruck, der verworfen wird.QBasic
1#
ist eine Zeilennummer mit doppelter Genauigkeit.print"corn"
tut was es sagt.end
Beendet das Programm. Die zweite Zeile ist syntaktisch gültig, wird jedoch nie ausgeführt.Pip
Fast alles sind Ausdrücke, die verworfen werden.
"corn":e
versucht, eine Literalzeichenfolge zuzuweisen, die unbemerkt fehlschlägt (sofern keine Warnungen aktiviert sind)."salad"
ist der letzte Ausdruck im Programm und wird daher gedruckt.quelle
PHP, JavaScript und BrainF * ck, 178 Bytes
Das erste Mal, dass ich einen Polyglot ausprobiert habe - ich werde nicht lügen, ich bin hier über meinem Kopf ...
Golf gespielt:
(Ich habe es nicht gewagt, ein Thanksgiving-Essen in den HTML-Code zu schreiben und das als eine andere Sprache zu betrachten ...)
Erläuterung:
Der Code muss in einer .php-Datei für die PHP- und JavaScript-Teile gespeichert werden.
PHP:
Bei Ausführung auf einem PHP-Server wird der PHP-Teil des Codes gelesen:
Dies gibt aus:
JavaScript:
Sie können die JavaScript-
A()
Funktion von der Browserkonsole aus aufrufen :Dies gibt aus:
Brainf * cK
Der Brainf * ck-Teil ist in den Kommentaren im JavaScript-Bereich gut versteckt, daher wird er von den PHP- und JavaScript-Teilen ignoriert:
Wenn die gesamte Datei in eine IDE eingefügt wurde, wird Folgendes ausgegeben:
Ohne diese Text-to-BF-Website hätte ich den Brainf * ck-Teil nicht machen können. Ich habe es ursprünglich dazu gebracht, Code für "Mais" zu generieren, und dann, um etwas über diese verrückte Sprache zu lernen, habe ich es in "Soße" konvertiert ... oder vielmehr "graVY" ...
quelle
Python, Clojure, Javascript, Ruby: 4 Sprachen, 113 Bytes
Vielen Dank an @ Sp3000 für den Großteil des Codes. Überraschenderweise musste ich nicht einmal an seinem Original etwas ändern, sondern lediglich den Ruby-Code voranstellen.
quelle
///, SQL und JavaScript
Gleiche Konstruktion wie bei diesem anderen urlaubsorientierten Polyglott:
///
SQL
Javascript
quelle
Clojure / Common Lisp / PicoLisp, 39 Bytes
Lisp Familie hier.
'()
Wird in Clojure als true ausgewertet, sodass ein Symbol ausgegeben wirdturkey
. PicoLisp und Common Lisp gehen in den falschen Zweig;""
ist in Common Lisp wahr und gibt daher ein Symbol ausrolls
, ein leerer String ist in PicoLisp falsch und geht so zum Drucken descorn
Symbols über.Überprüfen Sie es online:
https://ideone.com/OD65LB - Clojure
https://ideone.com/M1H5gf - Common Lisp
https://ideone.com/B4x3ns - PicoLisp
quelle
CJam, Unterlast,> <>, 39 Bytes
Was CJam sieht
'v;
: Ein Zeichenliteral, das sofort verworfen wird"(Turkey)S";
: Ein String-Literal, das sofort verworfen wird"Gravy"
: Schiebt die SaiteGravy
auf den Stapel"\n'nroC'oooo;";
: Ein String-Literal, das sofort verworfen wird.Am Ende der Ausführung wird der Stapel ausgegeben, was bedeutet, dass "Gravy" gedruckt wird.
Was Unterlast sieht
'v;"
: Einige ungültige Befehle, die ignoriert werden(Turkey)S
: Drückt den String "Turkey" und gibt ihn aus";"Gr
: Einige ungültige Befehle, die ignoriert werdena
: Dies verursacht einen Segfault im TIO-Interpreter, da der Stack leer ist. Die Ausführung wird abgebrochen.Was> <> sieht
'v;"(Turkey)S";"Gravy""
schiebt eine Reihe von Zeichen auf den Stapel (die ignoriert werden). Die IP wickelt sich dann wieder um.v
sendet die IP nach unten.>'nroC'oooo
schiebt die Zeichen in die Zeichenfolge "Corn" und gibt sie aus.;
beendet die Ausführung. Alle anderen Zeichen werden ignoriert.quelle