Co przyniesiesz na Święto Dziękczynienia?


40

Święto Dziękczynienia w Stanach Zjednoczonych zbliża się 24 listopada. Wiele osób będzie jadło duży obiad ze swoimi rodzinami, tradycyjnie włączając indyka i wiele przystawek. Zazwyczaj oznacza to, że członkowie rodziny muszą koordynować, kto przyniesie każdą z różnych potraw. W tym wyzwaniu celem jest napisanie poliglota, który wypuszcza inne danie w każdym języku, w którym jest uruchamiany.

Menu

(Wybrane z Wikipedii . W przypadku, gdy nie jest to oczywiste, każda linia to jeden 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

Zasady

  • Każde przesłanie musi przebiegać w co najmniej 3 językach , z których każdy musi wyświetlać inny element z menu. Nie możesz używać wielu wersji tego samego języka (np. Python 2 i Python 3 nie mogą być używane w tej samej odpowiedzi).
  • Każdy wpis musi mieć te same bajty w kodowaniu każdego języka. Na przykład, ɱto bajt 0x1Dw kodowaniu Jelly , która odpowiada ¢w kodowaniu 05AB1E użytkownika .
  • Różne języki mogą korzystać z różnych metod wyjściowych, ale wpisy muszą być pełnymi programami we wszystkich językach i być zgodne z jedną z naszych domyślnych dozwolonych metod We / Wy .
  • Żaden program nie może pobierać danych wejściowych, ale każdy z nich może drukować do STDERR lub generować błędy czasu wykonania / kompilacji i ostrzeżenia, dopóki prawidłowe wyjście jest nadal drukowane do STDOUT lub pliku.
  • Wielkość liter i spacja nie mają znaczenia. Na przykład dane wyjściowe GreenbeAN Sbędą nadal liczone jako green beans.
  • Ponieważ głównym daniem każdego 1 amerykańskiego posiłku na Święto Dziękczynienia jest indyk, jeden język musi zostać wyprowadzonyturkey (ignorując wielkość liter i białe znaki).

Punktacja

Zgłoszenie, które tworzy unikalne prawidłowe wyniki w większości języków, wygrywa. W przypadku remisu wygrywa najkrótsza z powiązanych pozycji w bajtach.

1. Tak, indyk nie jest jedynym daniem głównym , ale zamierzamy udawać, że jest.


1
Dwa powiązane wyzwania: 1 , 2
ETHprodukcje

Wielkość liter i białe znaki nie mają znaczenia Czy możemy usunąć białe znaki? Powiedz wyjściecornbread
Luis Mendo,

@LuisMendo Yup.
ETHprodukcje

1
Cóż, nic nie przyniosę, bo nie mieszkam w USA. XD
Mega Man,

1
@ ConorO'Brien Pozwolę zerowy znak jako spację. I tak, możesz używać różnych „dialektów” BF.
ETHprodukcje

Odpowiedzi:


32

Pyke, Pyth, Python 2, Foo, Brain ****, GolfScript, Actually, <> <, Gol <> <, Seriously, Befunge, Fission, Haystack, 13 języków, 546 bajtów

Kiedy zobaczyłem odpowiedź na inne 10 11 12 języków , musiałem dodać jeszcze jeden dwa 3. Zastanawiam się też nad odrzuceniem Pytha, żeby zaoszczędzić na bajtach. (w tej chwili 162 z nich)

#\ 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: Wypróbuj tutaj! rolls

Odpowiednia linia kodu:

#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: Wypróbuj tutaj! gravy

Odpowiednia linia kodu:

#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

Wszystko po )to, aby Pyth mógł go skompilować bez błędów przy braku danych wejściowych.


Python 2: corn

Wiersz 1 to cały komentarz

Wiersz 2 drukuje „kukurydzę”, a następnie ma komentarz

Wiersz 3 ma literał ciąg, a następnie komentarz

Linia 4 i następne to komentarze


Foo: Wypróbuj online! biscuits

Foo drukuje wszystko zawarte w podwójnych cudzysłowach ( "). W tym przypadku starałem się uwzględnić tylko te języki, które mogłyby poradzić sobie z innymi formami wprowadzania znaków (Specjalny przypadek dla Befunge). Jeśli po finale był jakikolwiek tekst ", również zostałby wydrukowany.


Brain ****: Wypróbuj online! salad

Skopiowałem dane wyjściowe generatora ciągów stałych. Musiałem uciec od wszystkich .postaci, .qaby grał z Pyth, a w.więc z Pyke. Dodałem kilka dodatkowych -znaków, aby komórki dotarły do ​​właściwych punktów przed wydrukowaniem na innym .znaku w 3. linii


GolfScript: Wypróbuj online! cornbread

W GolfScript #jest komentarzem do końca linii.

Co widzi interpreter GolfScript:

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

Z jakiegokolwiek powodu w GolfScript printpobiera ciąg i drukuje go bez nowej linii. Wystarczy mieć również bread, aby go wydrukować.


Właściwie: Wypróbuj online! macandcheese

Odpowiednia linia:

'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

<> <: Tylko kopiuj + wklej turkey Animacja wyjścia


Gol <> <: Wypróbuj online! stuffing

Ponieważ <> <z wyjątkiem `pomija pierwszy 'i wyświetla tylko wystarczającą liczbę znaków do wydrukowaniastuffing


Poważnie: wypróbuj online! macaroniandcheese

Odpowiednia linia:

'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: Wypróbuj online! sweettea

Kod, który jest przeglądany

#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.

Rozszczepienie: Wypróbuj online! dressing

Kod spojrzał na:

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

Z czego wykorzystywane 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(z nowymi wersjami 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

Z czego zrobić coś funkcjonalnego:

  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

Konstruuję każdy kod ascii PECANPIE wielkimi literami dla wielkich liter, ponieważ wszystkie mają mniej niż 100. Następnie drukuję je wszystkie jako znaki.


1
Łał! Nigdy nie widziałem poliglota Pyth / Python (myślę, że komentarze ułatwiają)
Esolanging Fruit

Możesz usunąć niektóre spacje i prawdopodobnie skrócić je ( macaroni and cheesemożna macaroniandcheese
wypisać

@ Usunięto spacje z artykułu
Blue

1
@Artyer to nie kodegolf
FlipTack

1
Czekaj, wyjście GolfScript cornrolls? Tego nie było w menu ...
ETHprodukcje

10

CJam , 05AB1E , Dip , V , 4 języki, 36 34 bajtów

2 bajty zapisane dzięki @DrMcMoylex!

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

Oryginalny 36-bajtowy kod:

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

Po &i przed djest jeden <ESC>, który ma 1 bajt. Tak więc kod z ujawnionymi znakami o zerowej szerokości wygląda następująco:

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

CJam

( <ESC>nie pokazano)

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

Wypróbuj online! wyjściaturkey

05AB1E

( <ESC>nie pokazano)

"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

Wypróbuj online! wyjścia:corn

V.

( <ESC>pokazano)

"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

Wypróbuj online! wypisuje nowy wiersz, po którym następujesalad

Stoczek

( <ESC>nie pokazano)

"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

Wyjścia gravy

Uwaga: Nie można uruchomić, python3 dip.pya następnie wpisać w tym celu kodu ze względu na literał znaku Escape. Pojawia się jako ^[, co powoduje, że interpreter Dip jest zdezorientowany i uważa, że [jest to polecenie, i powoduje błąd.

Najlepszym sposobem na uruchomienie tego jest edycja pliku źródłowego, zmiana ostatniego wiersza w dip.py

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

do

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

Pamiętaj, aby podać literę znaku ucieczki !. Teraz kod jest przekazywany do interpretera, aby mógł go zrozumieć ( "trzeba tak uciec \"). Teraz, jeśli uruchomisz go z wiersza poleceń, interpretuje rzeczywisty kod i wyniki gravy.


@ETHproductions Nie widziałem tego, w każdym razie pracuję nad tym ...
Kritixi Lithos

@ETHproductions Gotowe! Teraz działa w trzech językach!
Kritixi Lithos

Fajnie, miło!
ETHprodukcje

3
+1 za pop "corn"w objaśnieniu
FlipTack

Nitpick i wskazówka golfowa: nazywa się to „trybem normalnym”, a nie trybem ucieczki, a ponieważ białe znaki są nieistotne, możesz zmienić ddinaS
DJMcMayhem

9

MATL / Golfscript / 05AB1E / CJam : 4 języki, 34 33 bajty

'TURKEY'%"rolls"#];"corn""bread"s

2
Czy jest jakiś konkretny powód, dla którego wielką literą jest tUrKEY?
ETHprodukcje

@Ethproductions To są prawidłowe wypowiedzi w CJam i nie popełniają przedwczesnego błędu w tym języku
Luis Mendo,

W rzeczywistości mogą to być wszystkie czapki. W końcu indyk jest najważniejszym daniem :-)
Luis Mendo,

8

C, sh, Python 3, Nim, Julia, Brainf ** k - 6 języków, 211 209 bajtów

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

Języki pozycji menu:

  • Wyjścia C. turkey
  • wyjścia sh gravy
  • Wyjścia Python 3 biscuits
  • Wyjścia Nim rolls
  • Wyjścia Julii salad
  • Brainf ** k wyjść corn

Dodano Julię dzięki @kvill!


1
Julia może się wcisnąć, dla tego samego bajtu. Możesz upuścić C #include(działa w gcc). Zmień nazwę puts printlnwszędzie, z wyjątkiem main()wewnątrz, dodaj #=powyżej multiliniczny otwieracz komentarzy Julii a='''i zmień #*/na # =##*/.
kvill,

Możesz zagrać w golfa dalej, usuwając exiti łącząc pojedynczy cytat z poprzednią linią ( a=''''). shwyda ostrzeżenia, ale jest to dozwolone AFAIU. Och, println[T](s:T)=echo"rolls"pracuje dla Nima. Niezła odpowiedź ze wszystkimi moimi ulubionymi językami!
kvill,

7

ferNANDo /> <> / Gol> <> / 05AB1E / 2sable, 5 języków, 178 bajtów

!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"

7

Befunge-98 , > <> , V , Python 2 05AB1E , Gol> <> , Foo , Haystack (wersja 2015) , GolfScript BF, rozszczepienia , Minkolang 0,15 , poważnie , Axo : 14 języków 381 bajtów

To jest wspólna odpowiedź z BlueEyedBeast

Postanowiłem zastosować podejście 2D do tego pytania ... Tak, jest 7 esolangów 2D!

Inspiracją dla dodatkowych języków dodałem odpowiedź BlueEyedBeast (Foo, GolfScript)

<ESC>jest dosłowną postacią 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

Wypróbuj online! wyjściacorn

> <>

Polecenia są wyświetlane w kolejności, w jakiej się pojawiają

                                    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

Wypróbuj online! (Tylko kopiuj i wklej)sweettea

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"

Wypróbuj online! wyjścia applepie(uruchomienie może potrwać około 20 sekund)

Python 2

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

Wypróbuj online! (Tylko kopiuj i wklej)biscuits

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

Wypróbuj online! wyjściasalad

Gol> <>

Polecenia są wyświetlane w kolejności, w jakiej się pojawiają

                                    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

Wypróbuj online! wyjściaturkey

bla

Foo wypisuje wszystko w podwójnych cudzysłowach, dlatego starałem się nie używać podwójnych cudzysłowów w innych językach. Ponieważ "stuffing"jest w cudzysłowie, zostanie wydrukowany.

Wypróbuj online! wyprowadza, stuffinga następnie ma błąd

Haystack (2015)

Używa interpretera Haystacka 2015 (nie 2016), ponieważ nowsza wersja jest nieprawidłowa. Tłumacz na to jest haystack.pyi nie haystack_new.py

Polecenia są wyświetlane w kolejności, w jakiej się pojawiają

#                                 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

Ten program generuje dane

R
O
L
L
S

i nowy wiersz po tym wyjściu (hej, białe znaki nie mają znaczenia!)

GolfScript

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

Wypróbuj online! wyjściapecanpie

BF

Użyłem https://copy.sh/brainfuck/text.html do konwersji tekstu na BF. Chociaż istnieje wiele ,instrukcji wejściowych, kod BF działa niezależnie od niego.

Wypróbuj online! wyjściagravy

Rozszczepienie

Aby rozpocząć program rozszczepienia, atom musi zostać spawnowany. Widzimy, że dzieje się to w trzeciej linii:

..."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

Wypróbuj online! wyjściacornbread

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

Wypróbuj online! wyjściaapplecider

Poważnie

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

Wypróbuj online! wyjściadressing

Axo

(Polecenia są wyświetlane w kolejności ich napotkania)

#>                                          blah blah
  !                                         rotate direction 90 degrees clockwise

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

Wypróbuj online! wyjściapumpkinpie


1
To jest całkiem niesamowite :)
ETHproductions

@ETHproductions Dzięki!
Włożyłem

Tylko trochę nitpick: the! W kodzie befunge bierze 0 z góry stosu i wypycha 1. Dlatego zawartość stosu, gdy program rozpoczyna drukowanie, wynosi [110 114 111 99 1]. Znak wartości 1 ASCII nie jest widoczny (początek nagłówka), więc nie wpływa wizualnie na wynik. +1
Łagodnie Milquetoast,

@MistahFiggins Mógłbym to zmienić na $,,,,zamiast, aby nie wyświetlał 1(bez zmiany bajtu), ale wtedy musiałbym zmienić wszystkie permalinki ... :)
Kritixi Lithos

6

Pushy , Python i Brainfuck

To mój pierwszy poliglot, więc nie przejmuj się zbytnio ... Dla tych, którzy marudzą o liczbie bajtów, to 77 bajtów, ale dotyczy to tylko remisu.

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

Pushy drukuje „indyka” z wiodącym nowym wierszem (a także komunikat do 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 wypisuje „sos” , ponieważ pierwszy i ostatni wiersz są traktowane jako komentarze.

Brainfuck ignoruje wszystkie inne znaki, z wyjątkiem tych w ostatnim wierszu, które tworzą i drukują słowo „kukurydza” .


1
Jaka jest liczba bajtów?
Kritixi Lithos

1
Czy nie można również użyć języka Python 2 do usunięcia nawiasu i zapisania 2 bajtów?
Kritixi Lithos

@KritixiLithos to nie jest codegolf ....
FlipTack

4
„W przypadku remisu wygrywa najkrótsza z remisowanych pozycji w bajtach.” Nie jest to całkowicie codegolf, ale nadal potrzebujesz bajtecount.
TuxCrafting,

2
@ TùxCräftîñg prawda, ale i tak nie ma szans na dostanie się do remisu
FlipTack,

4

Pip , BF , oOo CODE , > <> , Befunge-93 ( implementacja Quirkster ), Ouroboros , /// : 7 języków, 175 bajtów

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

Pypeć

Wypróbuj online

Kilka wyrażeń, które są dyskretnie odrzucane (z których większość generuje ostrzeżenia, jeśli ostrzeżenia są włączone), z wyrażeniem "sTufFINg"na końcu, które jest drukowane.

/ '/ / 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

Wypróbuj online

Wszystko oprócz >-[--[<]>+>-]<.++++++++++++.+++.----.,,,,komentarzy. Kod ten generuje 99(kod znakowy c) najkrótszą sposobu wymienionego na esolangs.org , a następnie zmienia je na o, ri n. W ,,,,próbuje wejść czterech znaków, ale to nie ma wpływu na nic.

oOo KOD

Wszystko oprócz liter jest ignorowane. Kody pogrupowane w trójki mają następujące brzmienie:

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

i tłumaczy na ten kod BF ( spróbuj użyć tłumacza Retina Martina ):

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

które wyjściarolls . (I, co ciekawe, jest krótszy niż powyższy BF do generowania corn, nawet z ><dodanym opcją, aby poprawnie ustawić linię wielkich liter.)

> <>

Uruchom> kod <> tutaj

Ważna część kodu:

/
        /ooooo;
>"YVaRg"^

Adres IP jest odbijany w górę, zawija się i jest wysyłany w prawo. "YVaRg"wypycha kody znaków z gRaVY. ooooowypisuje pięć liter i ;kończy program.

Befunge-93

Kod zależy od nieokreślonego zachowania i prawdopodobnie działa tylko w tej implementacji .

Ważna część kodu:

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

/to podział. Stos jest pusty, więc realizacja JavaScript Używam podziałów 0przez 0i popycha NaN.

'jest nierozpoznaną postacią. Implementacja, której używam, dogodnie traktuje nierozpoznane znaki jako polecenia Reflect. (W przypadku wersji mniej zależnej od implementacji może być jedna możliwa zamiana 1_). Tak więc adres IP znów idzie w lewo, dzieli NaNsię 0(dostaje NaN) i zawija na drugi koniec linii.

Teraz "yekRut"(ruch RTL) wypycha kody znaków tuRkeyi ,,,,,,wysyła je. Wreszcie @kończy program.

Ouroboros

Wypróbuj tutaj

Każda linia kodu to „wąż”, który wykonuje się niezależnie.

Snake 1

Ponieważ nie ma instrukcji wyjściowych, jedyną ważną częścią kodu jest f(: fwypycha 15i (połyka tyle znaków z końca węża. Uważa się, że kod kończy się później .O. Wykonanie trwa do końca węża i zapętla się z powrotem do początku. Za każdym razem wąż staje się coraz krótszy, aż w końcu (zostaje połknięty. Ponieważ IP właśnie zostało zjedzone, wąż zatrzymuje egzekucję.

Snake 2

"saLaD"przesuwa kody znaków od końca do pierwszego; 1/dzieli kod znaków rprzez 1, pozostawiając go bez zmian, i ooooowyświetla pięć znaków. ;upuszcza przedmiot (brak operacji, ponieważ stos jest już pusty). 1(połyka wskaźnik instrukcji i zatrzymuje się.

Snake 3

"YVaRg"wypycha niektóre znaki; następnie (połyka liczbę znaków równą górze stosu, którym jest 89kod znaku Y. Zjedzenie 89 znaków wystarczy, aby połknąć adres IP i zatrzymać wykonywanie.

///

Wypróbuj online, używając mojej implementacji Pip ///

/'//usuwa wszystkie pojedyncze cudzysłowy z reszty programu (co nie robi nic, ponieważ nie ma żadnych). Następnie bisCuItSwyjścia są takie, jakie są. Wreszcie, reszta kodu jest niepełnym podstawieniem - są tylko dwa z trzech wymaganych ukośników - więc nic nie robi.


Lubię nadużywanie reguły „sprawa nie ma znaczenia”, aby działała w oOo CODE :-)
ETHprodukcje

3

Cubix, Pushy, Brainfuck, V, Python 2 - 5 języków, 89 85 bajtów

Moja druga poliglota - niezbyt golfa, ale działa:

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

(uwaga, która reprezentuje dosłowny bajt ucieczki x1B)

  • Odbitki Cubix corn
  • Wrażliwe odciski turkey
  • Odciski mózgu ROLLS
  • Odbitki V. gravy
  • Odbitki w języku Python salad

Cubix

Przetestuj program online!

Cubix jest językiem autora wyzwania, ETHproductions. Interpreter Cubix odczytuje kod w następujący sposób:

        " ` 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 . . .
        . . . .
        . . . .

Kod jest wykonywany w następujący sposób:

  • 'salad - wykonuje kilka nieistotnych operacji XOR na stosie, powoduje 115, 0, 0
  • '#;- wciśnij kod #, a następnie ponownie go pop (no-op)
  • "nroc" - przesuń kody dla „kukurydzy”
  • w - przesuwa IP do pętli w następnej linii poniżej:
    • !@o; - wydrukuj i pop ostatni element (zakończ, jeśli element ma wartość 0)
    • "-[--";;;; - przesuń te znaki i usuń je (no-op)
    • {{ - brak op

Natrętny

Przetestuj program online!

Pushy to mój własny język, który uruchamia kod w następujący sposób:

"          \ 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

Przetestuj program online!

Brainfuck ignoruje wszystkie znaki, których nie ma na liście instrukcji, w wyniku czego:

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

Które wydruki ROLLS. Zauważ, że wymaga to interpretera z zawijaniem komórek, takiego jak ten podany.


V (język Vim)

Przetestuj program online!

V został stworzony przez DJMcMayhem, jednego z naszych najlepszych golfistów.

V to oparta na programie wersja edytora tekstowego Vim. Większość znaków przed ESCwpisem zostaje zapisana w „pliku”, ale ␛ddgigravyusuwa to wszystko i zamiast tego wstawia „sos”. Zawartość pliku na końcu programu jest drukowana.


Python 2

Przetestuj program online!

Python jest jednym z moich ulubionych języków praktycznych. Ponieważ #jest to komentarz w Pythonie, większość programu jest ignorowana. Kod jest czytany w następujący sposób:

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


Drobny nitpick: w 'salad'#rzeczywistości wypycha kod s, 0, 0 i kod #, a następnie ;wyskakuje i pozostawia stos na 115,0,0.
ETHproductions

@ETHproductions tak, masz rację, tak naprawdę nie wpływa na program, ale naprawię opis
FlipTack

2

Python / QBasic / Pip , 3 języki, 41 bajtów

Więcej języków, ewentualnie TBA.

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

Pyton

1to tylko wyrażenie, które zostaje odrzucone. #zaczyna komentarz. print("turkey")robi to, co mówi, i "salad"jest kolejnym wyrażeniem, które zostaje odrzucone.

QBasic

1#jest numerem linii (podwójnej precyzji). print"corn"robi to, co mówi. endkończy program. Drugi wiersz jest poprawny pod względem składniowym, ale nigdy nie jest wykonywany.

Pypeć

Większość wszystkiego to wyrażenia, które są odrzucane. "corn":epróbuje przypisać do dosłownego ciągu, który nie powiedzie się po cichu (chyba że ostrzeżenia są włączone). "salad"jest ostatnim wyrażeniem w programie i dlatego jest drukowane.


1

PHP, JavaScript i BrainF * ck, 178 bajtów

Pierwszy raz próbowałem Polyglota - nie zamierzam kłamać, jestem tutaj ponad głową ...

Gra w golfa:

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

(Nie odważyłem się napisać jedzenia w Święto Dziękczynienia w kodzie HTML i policzyć to jako inny język ...)

Wyjaśnienie:

Kod należy zapisać w pliku .php dla części PHP i JavaScript.

PHP:

Po uruchomieniu na serwerze PHP część kodu PHP jest czytana:

<?php echo "turkey";?>

To daje:

wprowadź opis zdjęcia tutaj

JavaScript:

Możesz wywołać funkcję JavaScript A()z konsoli przeglądarki:

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

To daje:

wprowadź opis zdjęcia tutaj

Brainf * cK

Część Brainf * ck jest ładnie ukryta w komentarzach w sekcji JavaScript, więc jest ignorowana przez części PHP i JavaScript:

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

Po wklejeniu całego pliku do IDE , to powoduje :

wprowadź opis zdjęcia tutaj

Nie mógłbym zrobić części Brainf * ck bez tej strony tekstowej do BF. Najpierw wygenerowałem kod dla „kukurydzy”, a następnie, próbując dowiedzieć się czegoś o tym szalonym języku, przekonwertowałem go na „sos”… a raczej „graVY” ...


1

Python, Clojure, JavaScript, Ruby: 4 języki, 113 bajtów

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

Dzięki @ Sp3000 za większość kodu. Zaskakujące, że nie musiałem nic robić z jego oryginałem, musiałem tylko przygotować kod Ruby.


1

///, SQL i JavaScript

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

Taka sama konstrukcja jak w przypadku innych poliglot zorientowanych na wakacje:

///

/*//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'

0

Clojure / Common Lisp / PicoLisp, 39 bajtów

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

Rodzina Lisp tutaj. '()w Clojure sprawdza się prawda, więc przechodzi do wyprowadzenia symbolu turkey. PicoLisp i Common Lisp przechodzą w fałszywą gałąź; ""jest prawdą w Common Lisp, a zatem wypisuje symbol rolls, pusty łańcuch jest fałszywy w PicoLisp, więc przechodzi do drukowania cornsymbolu.

Sprawdź to online:

https://ideone.com/OD65LB - Clojure

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

https://ideone.com/B4x3ns - PicoLisp


0

CJam, niedociążenie,> <>, 39 bajtów

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

Co widzi CJam

  • 'v;: Dosłowny znak, który jest natychmiast odrzucany
  • "(Turkey)S";: Literał łańcuchowy, który jest natychmiast odrzucany
  • "Gravy": Wypycha ciąg Gravydo stosu
  • "\n'nroC'oooo;";: Literał łańcuchowy, który jest natychmiast odrzucany.

Pod koniec wykonywania stos jest wyprowadzany, co oznacza, że ​​drukowany jest napis „Gravy”.

Co widzi niedociążenie

  • 'v;": Niektóre nieprawidłowe polecenia, które są ignorowane
  • (Turkey)S: Wypycha ciąg „Turcja” i wysyła go
  • ";"Gr: Niektóre nieprawidłowe polecenia, które są ignorowane
  • a: Powoduje to awarię segregatora interpretera TIO, ponieważ stos jest pusty. Wykonanie zostało zakończone.

Co> <> widzi

  • 'v;"(Turkey)S";"Gravy""wypycha na stos kilka znaków (które są ignorowane). Adres IP następnie się zawija.
  • v wysyła adres IP w dół.
  • >'nroC'oooo wypycha znaki z ciągu „Kukurydza” i wysyła je.
  • ;kończy wykonanie. Wszystkie pozostałe znaki są ignorowane.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.