Qu'allez-vous apporter pour Thanksgiving?

40

L'action de grâce aux États-Unis approche le 24 novembre. Beaucoup de gens auront un grand dîner avec leurs familles, comprenant traditionnellement de la dinde et de nombreux plats d'accompagnement. Cela signifie généralement que les membres de la famille doivent déterminer qui apportera chacun des différents plats. Dans ce défi, l’objectif est d’ écrire un polyglotte qui produit une parabole différente dans chaque langue dans laquelle il est exécuté.

Menu

(Sélectionné sur Wikipedia . Au cas où ce ne serait pas évident, chaque ligne correspond à un élément.)

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

Règles

  • Chaque soumission doit être exécutée dans au moins trois langues , chacune devant générer un élément différent du menu. Vous ne pouvez pas utiliser plusieurs versions du même langage (par exemple, Python 2 et Python 3 ne peuvent pas être utilisés dans la même réponse).
  • Chaque entrée doit avoir les mêmes octets dans le codage de chaque langue. Par exemple, ɱest l' octet 0x1Ddans le codage de la gelée , ce qui correspond à ¢de l'encodage 05AB1E .
  • Différentes langues peuvent utiliser différentes méthodes de sortie, mais les entrées doivent être des programmes complets dans toutes les langues et suivre l'une de nos méthodes d'E / S autorisées par défaut .
  • Aucun programme ne peut prendre d’entrée, mais n’importe quel programme peut imprimer sur STDERR ou émettre des erreurs et des avertissements d’exécution / compilation tant que la sortie correcte est toujours imprimée sur STDOUT ou sur un fichier.
  • La casse et les espaces n'ont pas d'importance. Par exemple, une sortie de GreenbeAN Scompterait toujours comme green beans.
  • Comme le plat central de tous les 1 repas américain Thanksgiving est la dinde, une sortie langue doitturkey (abstraction faite cas et les espaces).

Notation

La soumission qui produit des sorties uniques et valides dans la plupart des langues gagne. En cas d'égalité, les entrées les plus courtes égales en octets l'emportent.

1. Oui, la dinde n'est pas le seul plat principal , mais nous allons faire semblant.

ETHproductions
la source
1
Deux défis liés: 1 , 2
ETHproductions
La casse et les espaces n'ont pas d'importance Alors pouvons-nous supprimer les espaces? Dire la sortiecornbread
Luis Mendo
@ LuisMendo Yup.
ETHproductions
1
Eh bien, je n’apporterai rien, car je ne vis pas aux États-Unis. XD
Mega Man
1
@ ConorO'Brien, je vais autoriser le caractère nul comme un espace. Et oui, vous pouvez utiliser différents "dialectes" de BF.
ETHproductions

Réponses:

32

Pyke, Pyth, Python 2, Foo, Cerveau ****, GolfScript, En fait, <> <, Gol <> <, Sérieusement, Befunge, Fission, Meule de foin, 13 langues, 546 octets

Quand j'ai vu l'autre 10 11 12 réponse de la langue , je devais ajouter un montant supplémentaire d' un deux 3. Je suis aussi envisage sérieusement de laisser tomber Pyth si seulement pour économiser sur les octets. (à l'heure actuelle 162 d'entre eux)

#\ s[\g\r\a\v\y)w.q)\r\o\l\l\ssp00/;oooooooo'stuffing;oooooo~'`turkey'
print'corn'#))))))))))))))))))))))))]+[--------->++<]>+w.q++[->+++<]>++w.q+++++++++++w.q-----------w.q----------------;))!+f'!n'!i'!s'!s'!e'!r'!d'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))L
'bread'#)))\é'i'n'o'r'a+++++))))))))))))))))))))))))))))))))))))))))))))))))\♀1X'c'a'm++++'e's'e'e'h'c'd'n'a++++++++)+.&\�0\ó))))))))))))))))))
#\25*8*0+c25*6*9+c25*6*7+c25*6*5+c25*7*8+c25*8*0+c25*7*3+c25*6*9+c|000000
# ,,,,,,,,@0>00000000\#"biscuits"aetteews"

Pyke: Essayez-le ici! rolls

Ligne de code pertinente:

#s[\g\r\a  \v\y)w.q)\r\o\l\l\ssp00/;oooooooo'stuffing;oooooo~'`turkey'

#s[\g\r\a  \v\y)w.q) - effectively a comment because # doesn't do anything with an empty stack
\r\o\l\l\ss - sum("r", "o", "l", "l", "s")
p - print(^)
00/ - raise a ZeroDivisionError to stop running code

Pyth: Essayez ici! gravy

Ligne de code pertinente:

#s[\g\r\a  \v\y)w.q)\r\o\l\l\ssp00/;oooooooo'stuffing;oooooo~'`turkey'

#...) - while True:
s[\g\r\a  \v\y) - sum(["g", "r", "a", "v", "y"])
w - input()
.q - quit

Tous les )fichiers sont destinés à Pyth pour qu’il soit compilé sans erreur sur aucune entrée.


Python 2: corn

La ligne 1 est un commentaire entier

La ligne 2 imprime "maïs" et comporte ensuite un commentaire.

La ligne 3 a un littéral de chaîne puis un commentaire

Les lignes 4 et suivantes sont des commentaires


Foo: Essayez-le en ligne! biscuits

Foo affiche tout ce qui est entre guillemets ( "). Dans ce cas, j'ai pris soin de n'inclure que des langages pouvant gérer d'autres formes de saisie de chaîne (cas particulier de Befunge). S'il y avait du texte après la finale ", il serait également imprimé.


Cerveau ****: essayez-le en ligne! salad

J'ai copié la sortie du générateur de chaîne constante. Je devais échapper à tous les .personnages .qpour pouvoir jouer avec Pyth et w.pour Pyke. J'ai ajouté des -caractères supplémentaires pour que les cellules atteignent les bons points avant d'imprimer sur un autre .caractère de la 3ème ligne.


GolfScript: essayez-le en ligne! cornbread

Dans GolfScript, #est un commentaire jusqu'à la fin de la ligne.

Ce que voit l'interprète GolfScript:

#comment
print'corn'#comment
'bread'#comment

Dans GolfScript, quelle que soit la raison, printprend une chaîne et l’imprime sans nouvelle ligne. Il suffit de l'avoir breadpour l'imprimer également.


En fait: essayez-le en ligne! macandcheese

Ligne pertinente:

'bread'#)))\é'i'n'o'r'a+++++))))))))))))))))))))))))))))))))))))))))))))))))\♀1X'c'a'm++++'e's'e'e'h'c'd'n'a++++++++)+.&\�0\ó))))))))))))))))))

é - clears the stack of whatever junk was on it before.
'i'n'o'r'a+++++ - create string "aroni"
) - rotate entire stack (effectively comments as stack is only 1 long)
♀1X - pop stack (now empty)
'c'a'm++++ - constructs the string "mac"
'e's'e'e'h'c'd'n'a++++++++ - constructs the string "andcheese"
) - rotate stack (reverse)
+ - "mac" + "andcheese"
� - quit

<> <: Copier + Coller uniquement turkey Animation de sortie


Gol <> <: Essayez-le en ligne! stuffing

Comme <> <sauf, `saute le premier 'et ne donne que suffisamment de caractères à imprimerstuffing


Sérieusement: essayez-le en ligne! macaroniandcheese

Ligne pertinente:

'bread'#)))\é'i'n'o'r'a+++++))))))))))))))))))))))))))))))))))))))))))))))))\♀1X'c'a'm++++'e's'e'e'h'c'd'n'a++++++++)+.&\�0\ó))))))))))))))))))
é - clears the stack of whatever junk was on it before.
'i'n'o'r'a+++++ - create string "aroni"
) - rotate entire stack (effectively comments as stack is only 1 long)
♀1X - no-op
'c'a'm++++ - constructs the string "mac" + "aroni"
'e's'e'e'h'c'd'n'a++++++++ - constructs the string "andcheese"
) - rotate stack (reverse)
+ - "macaroni" + "andcheese"
. - print stack
0\ó - exit

Befunge: Essayez-le en ligne! sweettea

Code qui est regardé

#s[\g\r\a  \v - |
            ) - | - Directing the stack pointer to the correct place
            é - |
# ,,,,,,,,@0>00000000\#"biscuits"aetteews"

            >                              - change direction of travel
             00000000\#"biscuits           - a load of no-ops `#` skips the opening `"`
                                "aetteews" - add the chars to the stack in reverse order
  ,,,,,,,,@                                - output 8 chars from the stack and exit.

Fission: essayez-le en ligne! dressing

Code examiné:

;))!+f'!n'!i'!s'!s'!e'!r'!d'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))L

Dont sont utilisés:

;!+f'!n'!i'!s'!s'!e'!r'!d'L
                          L - start an atom going left
                      !d'   - create the character `d` and print it
                              ...
;                           - exit

Haystack (2015) : PECANPIE(avec les nouvelles lignes EXTRA!)

#\
 r
 b
 \25*8*0+c25*6*9+c25*6*7+c25*6*5+c25*7*8+c25*8*0+c25*7*3+c25*6*9+c

Dont quelque chose de fonctionnel:

  25*8*0+c25*6*9+c25*6*7+c25*6*5+c25*7*8+c25*8*0+c25*7*3+c25*6*9+c

Je construis chaque point de code ascii PECANPIE en majuscule pour les lettres en majuscule car elles sont toutes inférieures à 100. Je les imprime ensuite en tant que caractères.

Bleu
la source
1
Hou la la! Jamais vu un polyglotte Python / Python (je suppose que les commentaires rendent les choses plus faciles)
Esolanging Fruit
Vous pouvez supprimer des espaces et probablement le raccourcir ( macaroni and cheesepeut être macaroniandcheese
affiché au format
Espaces @Artyer supprimés
Bleu
1
@Artyer ce n'est pas pas de code
golf
1
Attendez, les sorties GolfScript cornrolls? Ce n'était pas au menu ...
ETHproductions
10

CJam , 05AB1E , Dip , V , 4 langues, 36 à 34 octets

2 octets enregistrés grâce à @DrMcMoylex!

"turkey"e#"corn"??"gravy"p&Ssalad

Code original de 36 octets:

"turkey"e#"corn"??"gravy"p&ddisalad

Après le &et avant le dil y a un <ESC>, qui est 1 octet. Donc, le code avec les caractères de largeur nulle révélés ressemble à ceci:

"turkey"e#"corn"??"gravy"p&Ssalad

CJam

( <ESC>n'est pas montré)

"turkey"e#"corn"??"gravy"p&Ssalad
"turkey"                           e# push this string
        e#"corn"??"gravy"p&Ssalad  e# comment
                                   e# implicit output

Essayez-le en ligne! les sortiesturkey

05AB1E

( <ESC>n'est pas montré)

"turkey"e#"corn"??"gravy"p&Ssalad
"turkey"                           # push this string
                                   # STACK: ["turkey"]
        e                          # calculates nPr for the last two values in the stack
                                   # since there is only one value, this evaluates to nothing
                                   # as a result, "turkey" is popped
                                   # STACK: []
         #                         # if true end, since this is false, the program doesn't end
          "corn"?                  # push this string and print it without newlines
                                   # STACK: []
                 ?                 # prints nothing, since there is nothing in stack
                  "gravy"p&Ssalad  # nothing happens here since the stack is already printed using a command and there is NO implicit print now, I think

Essayez-le en ligne! les sorties:corn

V

( <ESC>est montré)

"turkey"e#"corn"??"gravy"p&<ESC>Ssalad
"turkey"e#"corn"??"gravy"p&             Code that writes a newline followed by `rn"??"gravy"p&Ssalad`
                           <ESC>        Enters normal mode
                                S       Deletes line and enters insert mode
                                 salad  Writes salad

Essayez-le en ligne! affiche une nouvelle ligne suivie desalad

Tremper

( <ESC>n'est pas montré)

"turkey"e#"corn"??"gravy"p&Ssalad
"turkey"                           push this string
                                   STACK: ["turkey"]
        e                          not in the language's database
         #                         push str("turkey") --> "turkey"
                                   STACK: ["turkey"]
          "corn"                   push this string
                                   STACK: ["turkey","corn"]
                ?                  pop "corn", if it is the boolean True (which it isn't) execute the following,
                                   but since it is false, nothing until the next ? gets executed
                                   STACK: ["turkey"]
                 ?                 if-statement end
                                   STACK: ["turkey"]
                  "gravy"          push this string
                                   STACK: ["turkey","gravy"]
                         p&        print turkey and end program
                           Ssalad  irrelevant since program has ended

Les sorties gravy

Remarque: vous ne pouvez pas exécuter python3 dip.py, puis taper le code correspondant à cause du littéral de caractère d'échappement. Il semble que ^[, ce qui rend l’interpréteur Dip confus, il pense que [c’est une commande et il en résulte une erreur.

La meilleure façon de le faire est d’éditer le fichier source, de changer la dernière ligne de dip.py

main(input(">>> "), stack.Stack())

à

main("\"turkey\"e#\"corn\"??\"gravy\"p&Ssalad", stack.Stack())
exit()

Assurez-vous d'inclure le caractère d'échappement! Maintenant, le code tel qu'il est est transmis à l'interprète afin qu'il puisse le comprendre (il "doit être échappé comme \"tel). Maintenant, si vous l'exécutez à partir de la ligne de commande, il interprète le code et les résultats réels gravy.

Kritixi Lithos
la source
@ETHproductions Je n'ai pas vu ça, j'ai quand même travaillé dessus ...
Kritixi Lithos
@ETHproductions Done! Maintenant, cela fonctionne en trois langues!
Commentaires
Cool, gentil!
ETHproductions
3
+1 pour pop "corn"dans l'explication
FlipTack
Une astuce et une astuce pour le golf: on l’appelle "mode normal" et non pas en mode échappement, et comme les espaces ne sont pas pertinents, vous pouvez passer ddiàS
DJMcMayhem
9

MATL / Golfscript / 05AB1E / CJam : 4 langues, 34 33 octets

'TURKEY'%"rolls"#];"corn""bread"s
  • En MATL cette sortie TURKEY .
  • En Golfscript il émet rolls .
  • En 05AB1E il émet corn .
  • En CJam il sort cornbread .
Luis Mendo
la source
2
Une raison particulière pour la capitalisation de tUrKEY?
ETHproductions
@Ethproductions C'est donc des déclarations valables dans CJam qui ne font pas d'erreur prématurément dans cette langue
Luis Mendo
En fait, ça peut être tout en majuscules. Après tout, la dinde est le plat le plus important :-)
Luis Mendo
8

C, sh, Python 3, Nim, Julia, Brainf ** k - 6 langues, 211 209 octets

#define println(x) main(){puts("turkey");}/*
#[
#=
a=''''
echo gravy
'''
println=lambda x:print("biscuits")
# ]#proc println[T](s:T)=echo"rolls"#--[----->+<]>---.++++++++++++.+++.----.
# =##*/
println("salad")

Langues aux éléments de menu:

  • Sorties C turkey
  • sh sorties gravy
  • Python 3 sorties biscuits
  • Nim sorties rolls
  • Julia sorties salad
  • Brainf ** k sorties corn

Ajout de Julia grâce à @kvill!

Cuivre
la source
1
Il est possible d’insérer Julia dans le même compte. Vous pouvez laisser tomber le C #include(fonctionne dans gcc). Renommez puts printlnpartout sauf en main(), ajoutez l'ouvre-commentaires multiligne de julia #=ci a='''- dessus et remplacez-le #*/par # =##*/.
kvill
Vous pouvez jouer au golf plus loin en supprimant le exitet en joignant la citation unique à la ligne précédente ( a=''''). shémettra des avertissements mais cela est autorisé AFAIU. Et oh, ça println[T](s:T)=echo"rolls"marche pour Nim. Bonne réponse avec toutes mes langues préférées combinées!
kvill
7

ferNANDo /> <> / Gol> <> / 05AB1E / 2sable, 5 langues, 178 octets

!v"`"v"!
     <;ooooo"salad"
"<;oooooooo"dressing
1 0
0 1 1 1 0 1 0 0
0 1 1 1 0 1 0 1
0 1 1 1 0 0 1 0
0 1 1 0 1 0 1 1
0 1 1 0 0 1 0 1
0 1 1 1 1 0 0 1
")\"corn""ab"û"aba"Qi"rolls"
acrolithe
la source
7

Befunge-98 , > <> , V , Python 2, 05AB1E , Gol> <> , Foo , Haystack (version 2015) , GolfScript , BF, Fission , Minkolang 0,15 , Sérieusement , Axo : 14 langues, 381 octets

Ceci est une réponse collaborative avec BlueEyedBeast

J'ai décidé de faire une approche 2D de cette question ... Oui, il y a 7 esolangs 2D!

J'ai inspiré d'autres langues à ajouter par la réponse de BlueEyedBeast (Foo, GolfScript)

<ESC>est le caractère littéral de Escape .

#>!>\'n\'r\'o\'c\,,,,,@'s'a'l'a'dJ,é'g'n+'i+'s+'s+'e+'r+'d+.ó[-]+[----->+++<]>.+++++++++++.+++[->+++<]>++.+[--->+<]>.+++H'turkey'~;oooooooo'sweettea.0-5++++++++fffffffff''`'
#   >99*d1+c3-c89*4+dcc99*2+c!|$l9D3-O93++dOO8+O1+O1-O5+OO1+O95++O.
# >'p'()'u'()'m'()'p'()'k'()'i'()'n'()'p'()'i'()'e'()\
print'biscuits';'pecanpie'#"stuffing"R'c!'o!'r!'n!'b!'r!'e!'a!'d!*<ESC>ddddddSapplepie

Befunge-98

#?!>                                nothing important
  'n                                push 'n'
                                    STACK: [110]
    \                               swap top two stack values (TBH, I'm not really sure what happens in this case)
                                    STACK: [110, 0]
     'r\'o\'c\                      repeat the same for other characters
                                    STACK: [110 114 111 99 0]
              ,,,,,                 output the next 5 top stack values, "corn"
                   @                end program
                                    rest of the code is irrelevant
                                    since program has already stopped

Essayez-le en ligne!les sortiescorn

> <>

Les commandes sont affichées dans leur ordre d'apparition

                                    enter from the left, direction = right
#                                   mirror, now the direction will change to left
                                    and it wraps around and comes to the right
                                    and reads code from the right to the left
'`'                                 push this
   ' ... 5-0.aetteews'              push this too
                      oooooooo      outputs the top 5 characters of the stack
                              ;     end program

Essayez-le en ligne! (Copier et coller uniquement) sortiessweettea

V

             ...<ESC>                 writes stuff over three lines and enters normal mode
                     ddddddS          deletes 3 lines, delete another line and enter insert mode
                            applepie  writes "applepie"

Essayez-le en ligne! les sortiesapplepie (cela peut prendre environ 20 secondes)

Python 2

                                    # first two lines are comments
print"biscuits";                    # prints "biscuits" and ends statement
                'pecanpie'          # dangling (and ignored) string literal 

Essayez-le en ligne! (Copier et coller uniquement) sortiesbiscuits

05AB1E

#>!>                                # does nothing important
\'n\                                # push 'n' and delete it
     'r\'o\'c\                      # repeat for other characters
              ,,,,,                 # prints 5 times (since there is nothing in stack,
                                    #                 prints nothing)
                   @                # push the index of the top of stack
                    's'a'l'a'd      # push these characters
                              J,    # join them and print them out
                                    # the rest of the code does not matter
                                    # since there is no implicit print
                                    # because we used the print statement

Essayez-le en ligne!les sortiessalad

Gol> <>

Les commandes sont affichées dans leur ordre d'apparition

                                    enter from the left, direction = right
#                                   mirror, now the direction changes to left
                                    and it wraps around and comes to the right
                                    and reads code from the right to the left
 '                                  starting parsing strings
  `                                 escape next character
   '                                gets escaped
    "                               stop string parsing
     fffffffff                      pushes 15, 8 times
           ++++++++                 adds up the numbers, resulting in 135
                 5-                 subtract 4 from it, 130
                   0                pushes 0
                    0               jumps to (130, 0)

#\'n\'r\'o\'c\,,,,,@'r'o'l'l'sJ, ... H'turkey'~;oooooooo"sweettea.0-5++++++++fffffffff""`"
                                              ^
                                       we are here now

                     ˜              removes value at top of stack, '"'
                      "yekrut"      push this string
                              H     Output stack as characters and halt program

Essayez-le en ligne!les sortiesturkey

Foo

Foo ne donne rien entre guillemets, c’est pourquoi j’ai veillé à ne pas utiliser de guillemets dans les autres langues. Puisque"stuffing" est entre guillemets, il sera imprimé.

Essayez-le en ligne! les sortiesstuffing et a ensuite une erreur

Meule de foin (2015)

Ceci utilise l'interprète de Haystack 2015 (pas 2016) puisque la version la plus récente n'est pas valide. L'interprète pour cela est haystack.pyet non haystack_new.py

Les commandes sont affichées dans leur ordre d'apparition

#                                 ignored
 \                                reflection (now it moves downwards)
  >                               set direction to right
   99*d1+c                        Output 'R'
          3-c                     Output 'O'
             89*4+dcc             Outputs 'L', newline, 'L'
                     99*2+c!|     Outputs 'S' and ends the program
                                  Note: '!' is ignored by the interpreter

Ce programme génère

R
O
L
L
S

et une nouvelle ligne après cette sortie (hé, les espaces n'ont pas d'importance!)

GolfScript

                                    first 2 lines are comments
print'biscuits';                    pushes "biscuits" to the stack and discards it
                'pecanpie'          push this
                          #...      comment
                                    implicit output

Essayez-le en ligne!les sortiespecanpie

BF

J'ai utilisé https://copy.sh/brainfuck/text.html pour convertir du texte en BF. Bien qu'il y ait beaucoup de, instructions d'entrée, le code BF s'exécute indépendamment de celui-ci.

Essayez-le en ligne! les sortiesgravy

Fission

Pour qu'un programme de fission commence, il faut générer un atome. Nous voyons cela se passer la troisième ligne:

..."stuffing"                                Blah blah blah
             R                               Spawns an atom with direction right
              'c                             Gives the atom the mass of 'c''s ASCII value
                !                            Print the atom's mass
                 'o!'r!'n!'b!'r!'e!'a!'d!    Do the same for other characters
                                         *   Destroy atom, end program

Essayez-le en ligne! les sortiescornbread

Minkolang v0.15

#                                Doesn't really do anything
 \                               Reflect, moves downwards
  >                              Changes direction to right
    ... !|                       Does stuff in stack, '!' ignores the '|'
          $l9D3 ... ++O          Uses ASCII character codes to print "applecider"
                       .         Ends program

Essayez-le en ligne! les sortiesapplecider

Sérieusement

é                          - clear stack
 'g'n+'i+'s+'s+'e+'r+'d+   - load chars onto stack
                        .  - print stack
                         ó - exit

Essayez-le en ligne! les sortiesdressing

Axo

(Les commandes sont affichées dans l'ordre dans lequel elles sont rencontrées)

#>                                          blah blah
  !                                         rotate direction 90 degrees clockwise

  >                                         go right
   'p'()                                    push char and output
        'u'() ... 'e'()                     repeat for other characters
                       \                    end program

Essayez-le en ligne! les sortiespumpkinpie

Kritixi Lithos
la source
1
C'est assez génial :)
ETHproductions
@ETHproductions Merci! J'y ai mis beaucoup d'effort :)
Kritixi Lithos
Juste un petit nitpick: le! Dans le code befunge prend un 0 du haut de la pile et pousse 1. Par conséquent, le contenu de la pile lorsque le programme commence à imprimer est [110 114 111 99 1]. Le caractère correspondant à la valeur ASCII 1 n'est pas visible (début de l'en-tête) et n'affecte donc pas le résultat. +1
MildlyMilquetoast
@MistahFiggins Je pourrais simplement le changer pour $,,,,au lieu de ne pas afficher le 1(sans changer le décompte intermédiaire), mais je devrais alors changer tous les permaliens ... :)
Kritixi Lithos
6

Pushy , Python et Brainfuck

C’est mon premier polyglotte, alors n’allez pas trop loin avec moi… Pour ceux qui se plaignent du nombre d’octets, c’est 77 octets, mais ce n’est pertinent que pour le départage.

"`turkey`"
print('gravy')
#++++++++++[>++++++++++<-]>-.++++++++++++.+++.----.

Pushy imprime 'turkey' avec une nouvelle ligne principale (ainsi qu'un message à STDERR):

"        % Print current stack: just a newline as stack is empty
`turkey` % Push to stack
"        % Print the stack: 'turkey'
p        % Primality check on 'y' (121): pushes 0
r        % Integer root of 0: throws error and exits

Python imprime « sauce » , car les première et dernière lignes sont traitées comme des commentaires.

Brainfuck ignore tous les autres caractères, à l'exception de ceux de la dernière ligne, qui créent et impriment le mot "maïs" .

FlipTack
la source
1
Quel est le nombre d'octets?
Kritixi Lithos
1
En outre, vous ne pouvez pas utiliser Python 2 pour supprimer la parenthèse et économiser 2 octets?
Kritixi Lithos
@KritixiLithos ce n'est pas codegolf ....
FlipTack
4
"En cas d'égalité, les entrées les plus courtes égales en octets l'emportent." Ce n'est pas entièrement codegolf, mais vous avez toujours besoin du décompte.
TuxCrafting
2
@ TùxCräftîñg vrai, mais cela n'a aucune chance de
briser
4

Pip , BF , oOo CODE , > <> , Befunge-93 ( implémentation de Quirkster ), Ouroboros , /// : 7 langues, 175 octets

/'//bisCuItS/`f(>-[--[<]>+>-]<.++++++++++++.+++.----.O@,,,,,,"tuRkey"
"saLaD"1/ooooo;1(
>"YVaRg"^(OoooOoOOoooOoooOOoooOOoOooOooOooOOoOooOooOooOOoOOoOoOOoOOoOOoOOo`OO"sTUfFINg"

Pépin

Essayez-le en ligne

Un groupe d'expressions qui sont éliminées de manière silencieuse (dont la plupart génèrent des avertissements, si les avertissements sont activés), avec l'expression "sTufFINg"à la fin qui est imprimée.

/ '/ / b      Invert the string "/" and divide it by nil
i s           Two different variables
Cu            Chr(nil)
It            If 10:
S / `...` OO   Invert a Pattern literal and swap it with undefined variable OO
"sTufFINg"    Autoprint this last expression

BF

Essayez-le en ligne

Tout sauf les >-[--[<]>+>-]<.++++++++++++.+++.----.,,,,commentaires. Ce code génère 99(code de caractère pour c) par le plus court méthode indiquée sur esolangs.org , il modifie pour o, ret n. le,,,, tente de saisir quatre caractères, mais cela n’affecte rien.

oOo CODE

Tout sauf les lettres est ignoré. En regroupant les lettres en trois, les codes se lisent comme suit:

bis CuI tSf Otu Rke ysa LaD ooo ooY VaR gOo ... OsT UfF INg

et traduit en ce code BF ( essayez-le en utilisant le traducteur de Martin Retina ):

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

qui sortrolls . (Et, fait intéressant, il est plus court que le BF ci-dessus pour la sortie corn, même avec un ><no-op ajouté pour que la capitalisation s'aligne correctement.)

> <>

Exécuter> <> code ici

La partie importante du code:

/
        /ooooo;
>"YVaRg"^

L'adresse IP est réfléchie vers le haut, tourne autour et est envoyée à droite. "YVaRg"pousse les codes de caractère de gRaVY. ooooosort cinq lettres et ;termine le programme.

Befunge-93

Le code dépend d'un comportement indéfini et ne fonctionne probablement que dans cette implémentation .

La partie importante du code:

/'                        @,,,,,,"tuRkey"

/est la division. La pile est vide, donc l'implémentation JavaScript que j'utilise divise 0par 0et pousse NaN.

'est un personnage non reconnu. L’implémentation que j’utilise utilise, de manière pratique, traite les caractères non reconnus comme des commandes Reflect. (Pour une version moins dépendante de l'implémentation, un remplacement possible serait 1_.) Ainsi, l'IP part à nouveau, se divise NaNen 0(obtenantNaN ) et passe à l'autre bout de la ligne.

Now "yekRut"(RTL en mouvement) pousse les codes de caractères de tuRkeyet les ,,,,,,sort. Enfin, @termine le programme.

Ouroboros

Essayez-le ici

Chaque ligne du code est un "serpent" qui s'exécute indépendamment.

Serpent 1

Comme il n'y a pas d'instructions de sortie, la seule partie importante du code est la suivante f(: fpousse 15et (avale autant de caractères à partir de la fin du serpent. Le code est maintenant considéré comme se terminant après .O. L'exécution continue jusqu'à la fin du serpent et revient au début. A chaque passage, le serpent devient plus court, jusqu'à ce qu'il soit finalement (avalé. Depuis que la propriété intellectuelle vient d'être mangée, le serpent interrompt l'exécution.

Serpent 2

"saLaD"pousse ses codes de caractères dernier à premier; 1/divise le charcode de rpar 1en le laissant inchangé et ooooogénère cinq caractères. ;supprime un élément (non-op car la pile est déjà vide). 1(avale le pointeur d'instruction et s'arrête.

Serpent 3

"YVaRg"pousse des codes de caractères; puis( avale un nombre de caractères égal au sommet de la pile, qui est 89le code de caractère de Y. Manger 89 caractères est suffisant pour avaler l’IP et arrêter l’exécution.

///

Essayez-le en ligne en utilisant mon implémentation Pip de ///

/'//supprime tous les guillemets simples du reste du programme (ce qui ne fait rien car il n'y en a pas). Ensuite, les bisCuItSsorties telles quelles. Enfin, le reste du code est une substitution incomplète - il n'y a que deux des trois barres obliques obligatoires - donc cela ne fait rien.

DLosc
la source
J'aime l'abus de la règle du "cas, ça n'a pas d'importance" pour que ça marche dans oOo CODE :-)
ETHproductions
3

Cubix, Pushy, Brainfuck, V, Python 2 - 5 langues, 89 85 octets

Mon deuxième polyglotte - peu joué au golf, mais ça marche:

"`turkey`";print'salad'#;"nroc"w!@o;"-[--";;;;{{->+<]>---.---.---..+++++++.␛ddgigravy

(notez que représente l'octet d'échappement littéral, x1B)

  • Impressions Cubix corn
  • Imprimés envahissants turkey
  • Brainfuck imprime ROLLS
  • V impressions gravy
  • Impressions python salad

Cubix

Testez le programme en ligne!

Cubix est une langue de l'auteur du défi, ETHproductions. L’interprète Cubix lit le code comme suit:

        " ` t u
        r k e y
        ` " ; p
        r i n t
' s a l a d ' # ; " n r o c " w
! @ o ; " - [ - - " ; ; ; ; { {
- > + < ] > - - - . - - - . - -
- . . + + + + + + + . d d g i ␛
        g r a v
        y . . .
        . . . .
        . . . .

Le code est exécuté comme suit:

  • 'salad - effectue certaines opérations XOR non pertinentes sur la pile, entraîne 115, 0, 0
  • '#;- poussez le charcode de #, puis relancez-le (no-op)
  • "nroc" - pousser les codes pour "maïs"
  • w - déplace l'IP à boucler sur la ligne suivante en dessous:
    • !@o; - imprimer et afficher le dernier élément (se terminer si l'élément est 0)
    • "-[--";;;; - poussez ces caractères et supprimez-les (no-op)
    • {{ - non-op

Arrogant

Testez le programme en ligne!

Pushy est ma propre langue et il exécute le code comme suit:

"          \ Print stack. Empty, so prints newline.
`turkey`   \ Push this string
"          \ Print this string
;          \ "End loop": Ignored as there is no loop in progress.
pr         \ Irrelevant stack operations
i          \ "interrupt": exit program.

Brainfuck

Testez le programme en ligne!

Brainfuck ignore tous les caractères qui ne figurent pas dans sa liste d'instructions, ce qui entraîne:

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

Quelles impressions ROLLS. Notez que cela nécessite un interpréteur avec des cellules d'emballage, telle que celle fournie.


V (langue Vim)

Testez le programme en ligne!

V a été créé par DJMcMayhem, un de nos meilleurs golfeurs de code.

V est une version de l'éditeur de texte Vim basée sur un programme. La plupart des caractères antérieurs ESCsont écrits dans le "fichier", mais ␛ddgigravysuppriment tout cela et insèrent un "jus" à la place. Le contenu du fichier à la fin du programme est imprimé.


Python 2

Testez le programme en ligne!

Le python est l’un de mes langages pratiques préférés. Comme il #s’agit d’un commentaire en Python, la plus grande partie du programme est ignorée. Le code se lit comme ceci:

"`turkey`";            # Unused string literal
print'salad'           # Print statement
#...                   # Comment (everything else is ignored)

FlipTack
la source
Nippick mineur: 'salad'#pousse réellement le charcode de s, 0, 0, et le charcode de #, puis ;apparaît et laisse la pile à 115,0,0.
ETHproductions
@ETHproductions Ouais, vous avez raison, cela n'affecte en rien le programme, mais je vais arranger la description
FlipTack
2

Python / QBasic / Pip , 3 langues, 41 octets

Plus de langues éventuellement à venir.

1#print"corn":end
print("turkey");"salad"

Python

1est juste une expression qui est jeté. #commence un commentaire. print("turkey")fait ce qu'il dit, et "salad"est une autre expression qui est jeté.

QBasic

1#est un numéro de ligne (double précision). print"corn"fait ce qu'il dit. endtermine le programme. La deuxième ligne est syntaxiquement valide mais jamais exécutée.

Pépin

La plupart des choses sont des expressions qui sont rejetées. "corn":etente d’affecter une chaîne littérale qui échoue en mode silencieux (sauf si les avertissements sont activés). "salad"est la dernière expression du programme et est donc imprimée.

DLosc
la source
1

PHP, JavaScript et BrainF * ck, 178 octets

La première fois que j'ai essayé un polyglotte - je ne vais pas mentir, je suis au-dessus de ma tête ici ...

Golfé:

<!DOCTYPE html><html><body><?php echo "turkey";?></body><script>function A(){alert("stuffing");}//`--[----->+<]>-++.+++++++++++.-----------------.-----------.+++.`
</script></html>

(Je n'ai pas osé écrire un aliment de Thanksgiving dans le code HTML et le compter comme une autre langue ...)

Explication:

Le code doit être enregistré dans un fichier .php pour les parties PHP et JavaScript.

PHP:

Lorsqu'il est exécuté sur un serveur PHP, la partie PHP du code est lue:

<?php echo "turkey";?>

Cela génère:

entrez la description de l'image ici

JavaScript:

Vous pouvez appeler la A()fonction JavaScript à partir de la console du navigateur:

function A(){alert("stuffing");}

Cela génère:

entrez la description de l'image ici

Brainf * cK

La partie Brainf * ck est bien cachée dans les commentaires de la section JavaScript. Elle est donc ignorée par les parties PHP et JavaScript:

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

Lorsque le fichier entier est collé dans un IDE , cela génère:

entrez la description de l'image ici

Je n'aurais pas pu faire la partie Brainf * ck sans ce site Web text-to-BF. Je l’ai initialement conçu pour générer du code pour "maïs", puis, dans le but d’apprendre quelque chose sur ce langage fou, je l’ai converti en "sauce" ... ou plutôt en "graVY" ...

Pete Arden
la source
1

Python, Clojure, Javascript, Ruby: 4 langues, 113 octets

1;''''/*
#_(
puts("turkey")
__END__
);'''
1;1//2;'''
1;*/alert("gravy")/*
(print "salad");'''
#_
print "corn";#*/

Merci à @ Sp3000 pour la majeure partie du code. Étonnamment, je n'ai même pas eu à faire quoi que ce soit à son original, je devais juste précéder le code Ruby.

clismique
la source
1

///, SQL et JavaScript

/*//turkey/\*/select('corn')
--a;function select(){alert('salad')}

Même construction que pour cet autre polyglotte des vacances:

///

/*//turkey/../..   Simply prints 'turkey', does no replaces, stops execution because the second /// block is incomplete

SQL

/*//turkey/\*/    //turkey/\ is seen as a block comment
                  That last \ was added to set apart the following */, completing the block
select('corn')    SQL Select statement, yielding 'corn'
--a;...           Seen by SQL as a comment, ignored

Javascript

/*//turkey/\*/    //turkey/\ is seen as a block comment
select('corn')    Function call to the function 'select', defined below
--a;              Decrement a, effectively a NOP
function select(){alert('salad')}
                  Defines the function select(), giving us 'salad'
Steenbergh
la source
0

Clojure / Common Lisp / PicoLisp, 39 octets

(print(if '()'turkey(if""'rolls'corn)))

Famille Lisp ici. '()est évalué à true dans Clojure afin de produire un symbole turkey. PicoLisp et Common Lisp vont dans la fausse branche;""est vrai dans Common Lisp et rollsaffiche donc le symbole , chaîne vide est fausse dans PicoLisp et passe à l'impressioncorn symbole.

Vérifiez-le en ligne:

https://ideone.com/OD65LB - Clojure

https://ideone.com/M1H5gf - Common Lisp

https://ideone.com/B4x3ns - PicoLisp

cliffroot
la source
0

CJam, Underload,> <>, 39 octets

'v;"(Turkey)S";"Gravy""
 >'nroC'oooo;";

Ce que CJam voit

  • 'v;: Un caractère littéral immédiatement ignoré
  • "(Turkey)S";: Un littéral de chaîne qui est immédiatement ignoré
  • "Gravy": Pousse la ficelle Gravy sur la pile
  • "\n'nroC'oooo;";: Un littéral de chaîne qui est immédiatement rejeté.

A la fin de l'exécution, la pile est sortie, ce qui signifie que "Gravy" est imprimé.

Ce que voit Underload

  • 'v;": Certaines commandes invalides qui sont ignorées
  • (Turkey)S: Pousse la chaîne "Turquie" et la sort
  • ";"Gr: Certaines commandes invalides qui sont ignorées
  • a: Cela provoque une erreur de segmentation sur l'interpréteur TIO puisque la pile est vide. L'exécution est terminée.

Ce que> <> voit

  • 'v;"(Turkey)S";"Gravy""pousse un tas de caractères dans la pile (qui sont ignorés). L'adresse IP se termine alors.
  • v envoie l'IP vers le bas.
  • >'nroC'oooo pousse les caractères dans la chaîne "Corn" et les sort.
  • ;termine l'exécution. Tous les autres caractères sont ignorés.
Fruit d'esolanging
la source