Що ви принесете на День подяки?


40

День подяки в США виходить 24 листопада. Багато людей будуть великою вечерею зі своїми родинами, традиційно включаючи індичку та безліч гарнірів. Зазвичай це означає, що члени сім'ї повинні узгодити, хто збирається принести кожну з різних страв. У цьому завданні мета полягає в тому, щоб написати поліглот, який виводить різні страви на кожній мові, на якій він працює.

Меню

(Вибрано з Вікіпедії . Якщо це не очевидно, кожен рядок - це один пункт.)

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

Правила

  • Кожне подання має працювати щонайменше на 3 мовах , кожна з яких повинна виводити з меню інший елемент. Ви не можете використовувати кілька версій однієї мови (наприклад, Python 2 та Python 3 не можна використовувати в одній відповіді).
  • Кожен запис повинен мати однакові байти в кодуванні кожної мови. Наприклад, ɱце байт 0x1Dв кодуванні Jelly в , що відповідає ¢в кодуванні 05AB1E в .
  • Різні мови можуть використовувати різні способи виведення, але записи повинні бути повноцінними програмами на всіх мовах та дотримуватися одного з наших дозволених методів вводу-виводу за замовчуванням .
  • Жодна програма не може брати введення, але будь-яка з програм може надрукувати на STDERR або викинути під час виконання / компілювати помилки та попередження часу, доки правильний вихід все ще надрукується в STDOUT або файл.
  • Справа та пробіл не мають значення. Наприклад, вихідний показник GreenbeAN Sвсе ще вважатиметься як green beans.
  • Оскільки центральною стравою кожної 1 американської страви подяки є індичка, одна мова повинна виходитиturkey (ігноруючи регістр та пробіли).

Оцінка балів

Виграє подання, яке створює унікальні дійсні результати на більшості мов. У разі зрівноваження виграє найкоротший із зв'язаних записів у байтах.

1. Так, індичка - не єдина основна страва , але ми будемо робити вигляд, що вона є.


1
Два пов'язані виклики: 1 , 2
ETHproductions

Справа та пробіли не мають значення. Чи можемо ми видалити пробіли? Скажіть вихідcornbread
Луїс Мендо

@LuisMendo Yup.
ETHproductions

1
Ну, я нічого не принесу, бо не живу в США. XD
Mega Man

1
@ ConorO'Brien Я дозволю нульовий знак як пробіл. І так, ви можете використовувати різні "діалекти" BF.
ETHproductions

Відповіді:


32

Pyke, Pyth, Python 2, Foo, Brain ****, GolfScript, Насправді, <> <, Gol <> <, Серйозно, Befunge, Fission, Haystack, 13 мов, 546 байт

Коли я побачив інші 10 11 12 відповіді на мові , мені довелося додати ще один два. 3. Я також серйозно розглядаю можливість скидання Pyth, якщо тільки заощадити на байтах. (на даний момент їх 162)

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

Пайк: Спробуйте тут! rolls

Рідкий рядок коду:

#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

Піт: Спробуйте тут! gravy

Рідкий рядок коду:

#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

Усі )є для Pyth, щоб зробити його компілювати без помилок без жодного вводу.


Пітон 2: corn

Рядок 1 - це цілий коментар

У рядку 2 друкується "кукурудза", а потім є коментар

У рядку 3 є рядковий літерал, а потім коментар

Рядок 4 далі - коментарі


Foo: Спробуйте в Інтернеті! biscuits

Foo друкує все, що міститься у подвійних лапках ( "). У цьому випадку я обережно включав лише мови, які могли б впоратися з іншими формами введення рядків (Особливий випадок для Befunge). Якби після фіналу був текст ", він також був би надрукований.


Мозок ****: Спробуйте це онлайн! salad

Я скопіював вихід генератора постійних рядків. Мені довелося уникати всіх .персонажів, .qщоб воно грало з Pyth і w.так воно грало з Pyke. Я додав кілька зайвих -символів, щоб клітини дісталися до потрібних точок перед друком на іншому .символі в 3-му рядку


GolfScript: Спробуйте в Інтернеті! cornbread

У GolfScript #є коментарем до кінця рядка.

Що бачить інтерпретатор GolfScript:

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

У GolfScript з будь-якої причини printбере рядок і друкує її без нового рядка. Достатньо лише того bread, щоб надрукувати його.


Насправді: Спробуйте в Інтернеті! macandcheese

Відповідна лінія:

'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

<> <: Копіювати + Вставити turkey Анімація виходу


Гол <> <: Спробуйте в Інтернеті! stuffing

Оскільки <> <, окрім того, `пропускає перший 'і лише видає достатню кількість символів для друкуstuffing


Серйозно: Спробуйте в Інтернеті! macaroniandcheese

Відповідна лінія:

'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: Спробуйте в Інтернеті! sweettea

Код, який дивився

#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: Спробуйте онлайн! dressing

Код подивився:

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

З яких використовуються:

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

Стог сіна (2015) : PECANPIE(з новими рядками 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

З них зробити щось функціональне:

  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

Я будую кожну кодову точку ascii PECANPIE у верхньому регістрі для великих літер, оскільки всі вони нижче 100. Потім я роздруковую їх усі як символи.


1
Оце Так! Ніколи не бачив поліглот Pyth / Python (я думаю, коментарі полегшують його)
Esolanging Fruit

Ви можете видалити пробіли і, ймовірно, скоротити їх ( macaroni and cheeseможна вивести як macaroniandcheese)
Artyer

Видалено пробіли @Artyer
Blue

1
@Artyer це не кодовий гольф
FlipTack

1
Зачекайте, результати GolfScript cornrolls? Цього не було в меню ...
ETHproductions

10

CJam , 05AB1E , Dip , V , 4 мови, 36 34 байт

2 байти збережено завдяки @DrMcMoylex!

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

Оригінальний 36-байтний код:

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

Після &та перед тим d, як є <ESC>, що становить 1 байт. Отже код з розкритими символами нульової ширини виглядає приблизно так:

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

CJam

( <ESC>не показано)

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

Спробуйте в Інтернеті! виходиturkey

05AB1E

( <ESC>не показано)

"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

Спробуйте в Інтернеті! Виходи:corn

V

( <ESC>показано)

"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

Спробуйте в Інтернеті! виводить новий рядок з наступнимsalad

Занурити

( <ESC>не показано)

"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

Виходи gravy

Примітка: Ви не можете запустити python3 dip.pyта ввести код для цього через літерал Escape. Здається ^[, що інтерпретатор Dip заплутався, і він вважає, що [це команда, і це призводить до помилки.

Найкращий спосіб запустити це - редагувати вихідний файл, змінити останній рядок у dip.py

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

до

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

Не забудьте включити буква втечі символу !. Тепер код як він передається в інтерпретатор, щоб він міг його зрозуміти ( "потрібно уникати \"так). Тепер, якщо ви запускаєте його з командного рядка, він інтерпретує фактичний код та результати gravy.


@ETHproductions Я цього не бачив, все
одно

@ETHproductions Готово! Зараз він працює трьома мовами!
Крітіксі Літос

Класна, приємна!
ETHproductions

3
+1 для pop "corn"пояснення
FlipTack

Нітпік і порада для гольфу: його називають "нормальним режимом", а не режимом виходу, а оскільки пробіл не має значення, ви можете змінитись ddiнаS
DJMcMayhem

9

MATL / Golfscript / 05AB1E / CJam : 4 мови, 34 33 байт

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

2
Якась конкретна причина капіталізації tUrKEY?
ETHproductions

@Ethproductions Ось так вони є дійсними твердженнями в CJam, і вона не помиляється передчасно на цій мові
Луїс Мендо

Насправді це можуть бути всі шапки. Зрештою, індичка - найважливіша страва :-)
Луїс Мендо

8

C, sh, Python 3, Nim, Julia, Brainf ** k - 6 мов, 211 209 байт

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

Мови до пунктів меню:

  • C виходи turkey
  • ш виходи gravy
  • Виходи Python 3 biscuits
  • Нім виходи rolls
  • Юлія виходить salad
  • Виходи Brainf ** k corn

Додана Джулія завдяки @kvill!


1
Джулію можна втиснути, за той самий рахунок. Можна скинути C #include(працює в gcc). Перейменувати puts printlnвсюди , крім main(), додати Джулії коментар багатостроковий ніж #=вище a='''і зміна #*/до # =##*/.
kvill

Ви можете додатково пограти в цей гольф, видаливши exitта приєднавши єдину цитату до попереднього рядка ( a=''''). shвидаватиме попередження, але це дозволено AFAIU. І о, println[T](s:T)=echo"rolls"працює для Німа. Гарна відповідь з усіма моїми улюбленими мовами разом!
kvill


7

Befunge-98 , > <> , V , Python 2, 05AB1E , Gol> <> , Foo , Haystack (версія 2015 року) , GolfScript , BF, Fission , Minkolang 0.15 , Серйозно , Axo : 14 мов, 381 байт

Це відповідь на співпрацю з BlueEyedBeast

Я вирішив зробити двовимірний підхід до цього питання ... Так, є 7 2D езоланг!

Я взяв натхнення для додаткових мов, щоб додати відповідь BlueEyedBeast (Foo, GolfScript)

<ESC>є літеральним символом для 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

Спробуйте в Інтернеті! виходиcorn

> <>

Команди відображаються в порядку їх появи

                                    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

Спробуйте в Інтернеті! (Тільки скопіювати та вставити)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"

Спробуйте в Інтернеті! Виходи applepie(це може зайняти 20 секунд, щоб він запустився)

Пітон 2

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

Спробуйте в Інтернеті! (Тільки скопіювати та вставити)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

Спробуйте в Інтернеті! виходиsalad

Гол> <>

Команди відображаються в порядку їх появи

                                    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

Спробуйте в Інтернеті! виходиturkey

Foo

Foo виводить що-небудь у подвійних лапках, тому я обережно не використовував жодних подвійних лапок на інших мовах. Оскільки "stuffing"в подвійних лапках вона буде надрукована.

Спробуйте в Інтернеті! виводить, stuffingа потім має помилку

Стог сіна (2015)

Для цього використовується інтерпретатор Haystack 2015 (не 2016), оскільки нова версія недійсна. Перекладачем для цього є haystack.pyі ні haystack_new.py

Команди відображаються в порядку їх появи

#                                 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

Ця програма виводить

R
O
L
L
S

і новий рядок після цього виводу (ей, пробіли не мають значення!)

GolfScript

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

Спробуйте в Інтернеті! виходиpecanpie

BF

Я використовував https://copy.sh/brainfuck/text.html для перетворення тексту в BF. Хоча ,вхідних висловлювань дуже багато , BF-код працює незалежно від нього.

Спробуйте в Інтернеті! виходиgravy

Ділення

Для початку програми Fission атом повинен бути породжений. Ми бачимо, що це відбувається в третьому рядку:

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

Спробуйте в Інтернеті! виходиcornbread

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

Спробуйте в Інтернеті! виходиapplecider

Серйозно

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

Спробуйте в Інтернеті! виходиdressing

Аксо

(Команди показують порядок їх зустрічі)

#>                                          blah blah
  !                                         rotate direction 90 degrees clockwise

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

Спробуйте в Інтернеті! виходиpumpkinpie


1
Це досить приголомшливо :)
ETHproductions

@ETHproductions Дякую! Я доклав багато зусиль для цього :)
Kritixi Lithos

Лише маленький нитчик:! У коді befunge береться 0 у верхній частині стека і натискає 1. Отже, вміст стеку, коли програма починає друкувати, є [110 114 111 99 1]. Символ для значення ASCII 1 не видно (початок заголовка), тому це не візуально впливає на результат. +1
MildlyMilquetoast

@MistahFiggins Я міг би просто змінити його, щоб $,,,,замість цього не виводити 1(без зміни облікового запису), але тоді мені доведеться змінити всі постійні посилання ... :)
Kritixi Lithos

6

Pushy , Python та Brainfuck

Це мій перший поліглот, тому не варто надто важко ставитись до мене ... Для тих, хто скуголить підрахунок байтів, це 77 байт, але це актуально лише для крадіжки.

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

Пустотливі друкує «індичку» з провідним новим рядком (а також повідомленням 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 друкує "підлив" , оскільки перший та останній рядки трактуються як коментарі.

Brainfuck ігнорує всі інші символи, за винятком тих, що знаходяться на заключному рядку, які створюють та друкують слово "мозоль" .


1
Яке число байтів?
Kritixi Lithos

1
Крім того, ви не можете використовувати Python 2 для видалення дужок і збереження 2 байтів?
Kritixi Lithos

@KritixiLithos це не codegolf ....
FlipTack

4
"У разі зрівноваження виграє найкоротший із зв'язаних записів у байтах". Це не зовсім кодовий гольф, але вам все одно потрібний рахунок.
TuxCrafting

2
@ TùxCräftîñg правда, але це все одно не має шансів потрапити на тай-
брейкер

4

Pip , BF , oOo КОД , > <> , Befunge-93 ( реалізація Quirkster ), Ouroboros , /// : 7 мов, 175 байт

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

Піп

Спробуйте в Інтернеті

Купу виразів, які мовчки відкидаються (більшість з яких генерують попередження, якщо попередження увімкнено), із виразом "sTufFINg"у кінці, який надрукується.

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

Спробуйте в Інтернеті

Все, крім >-[--[<]>+>-]<.++++++++++++.+++.----.,,,,коментарів. Цей код генерує 99(код символу для c) по найкоротшому способу , зазначеному на esolangs.org , потім змінює його o, rі n. У ,,,,Намагається введення чотирьох символів, але це нічого не впливає.

oOO КОД

Все, крім букв, ігнорується. Групуючи букви в трійки, коди звучать так:

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

і перекладається на цей BF-код ( спробуйте його за допомогою перекладача Сітківки Мартіна ):

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

який виводитьrolls . (І що цікаво, він коротший, ніж вище BF для виведення даних corn, навіть якщо ><не було додано неоперативного режиму, щоб правильно скласти літери капіталізації.)

> <>

Тут запустіть> <> код

Важлива частина коду:

/
        /ooooo;
>"YVaRg"^

IP-адреса відображається вгору, обгортається і надсилається вправо. "YVaRg"висуває коди символів gRaVY. oooooвиводить п’ять літер і ;припиняє програму.

Befunge-93

Код залежить від невизначеної поведінки і, ймовірно, працює лише в цій реалізації .

Важлива частина коду:

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

/це поділ. Стек порожній, тому реалізація JavaScript, яку я використовую, ділить 0на 0та висуває NaN.

'носить невпізнаний характер. Реалізація, яку я використовую, зручно, розглядає нерозпізнані символи як команди Reflect. (Для менш залежної від реалізації версії можлива одна заміна 1_.) Отже, IP знову йде ліворуч, ділиться NaNна 0(дістаючи NaN) та завертається на інший кінець рядка.

Тепер "yekRut"(переміщення RTL) висуває символьні коди tuRkeyта ,,,,,,виводить їх. Нарешті, @припиняє програму.

Уроборос

Спробуйте тут

Кожен рядок коду - це «змія», яка виконується самостійно.

Змія 1

Оскільки немає вихідних інструкцій, єдиною важливою частиною коду є f(: fштовхає 15і (ковтає, що багато символів з кінця змії. Тепер код вважається закінченим після .O. Виконання триває до кінця змії і петлі назад до початку. З кожним разом змія стає коротшою, поки з часом (не проковтне. Оскільки ІР щойно з'їли, змія зупиняє виконання.

Змія 2

"saLaD"висуває свої коди символів останнім-першим; 1/ділить код коду rна 1, залишаючи його незмінним, і oooooвиводить п'ять символів. ;опускає елемент (без опції, оскільки стек уже порожній). 1(ковтає вказівник та зупиняється.

Змія 3

"YVaRg"висуває деякі коди; потім (проковтує кількість символів, рівних верхній частині стека, що, як буває 89, коду символів Y. Її 89 символів достатньо, щоб проковтнути IP та зупинити виконання.

///

Спробуйте в Інтернеті, використовуючи мою реалізацію Pip ///

/'//видаляє всі одиничні цитати з решти програми (що нічого не робить, оскільки таких немає). Далі bisCuItSвиводиться як є. Нарешті, решта коду - це неповна заміна - з трьох необхідних косої риски є лише дві - так що це нічого не робить.


Мені подобається зловживання правилом "справа не має значення", щоб змусити його працювати в oOo КОД :-)
ETHproductions

3

Cubix, Pushy, Brainfuck, V, Python 2 - 5 мов, 89 85 байт

Мій другий в історії поліглот - не дуже гольф, але він працює:

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

(зверніть увагу, що представляє буквальний байт втечі, x1B)

  • Кубіксні відбитки corn
  • Пухнасті відбитки turkey
  • Brainfuck відбитки ROLLS
  • V відбитки gravy
  • Друкує Python salad

Cubix

Тестуйте програму онлайн!

Cubix - мова автора виклику, ETHproductions. Перекладач Cubix читає такий код:

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

Код виконується так:

  • 'salad - робить деякі нерелевантні операції XOR на стеці, призводить до 115, 0, 0
  • '#;- натисніть на charcode #, а потім виведіть його знову (не-оп)
  • "nroc" - натиснути графічні коди для "кукурудзи"
  • w - переміщує IP в цикл наступного рядка нижче:
    • !@o; - надрукувати та вивести останній елемент (завершити, якщо елемент 0)
    • "-[--";;;; - натисніть на ці символи та видаліть їх (без опції)
    • {{ - не-оп

Пустотливий

Тестуйте програму онлайн!

Pushy - це моя власна мова, і він працює таким чином:

"          \ 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 ігнорує всіх символів, які не містяться в його списку інструкцій, в результаті чого:

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

Які відбитки ROLLS. Зауважте, що для цього потрібен перекладач із загортаючими клітинками, такими як наданий.


V (мова Vim)

Тестуйте програму онлайн!

V був створений DJMcMayhem, одним з наших найкращих гольфістів у коді.

V - програмна версія текстового редактора Vim. Більшість символів перед ESCget записується у "файл", але ␛ddgigravyвидаляє все це і вставляє "gravy" замість цього. Вміст файлу в кінці програми друкується.


Пітон 2

Тестуйте програму онлайн!

Python - одна з моїх улюблених практичних мов. Оскільки #коментар у Python, більшість програми ігнорується. Код читається так:

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


Незначна нітпік: 'salad'#насправді штовхає charcode of s0, 0 та charcode of #, потім ;вискакує та залишає стек у 115,0,0.
ETHproductions

@ETHproductions так, ви маєте рацію, жодним чином не впливає на програму, але я
виправлю

2

Python / QBasic / Pip , 3 мови, 41 байт

Більше мов, можливо, TBA.

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

Пітон

1це лише вираз, який відкидається. #починає коментар. print("turkey")робить те, що говорить, і "salad"є іншим виразом, який відкидається.

QBasic

1#- номер рядка з подвійною точністю. print"corn"робить те, що говорить. endприпиняє програму. Другий рядок є синтаксично дійсним, але ніколи не виконується.

Піп

Більшість все - це вирази, які відкидаються. "corn":eнамагається призначити буквальний рядок, який виходить з ладу безшумно (якщо не увімкнено попередження). "salad"є останнім виразом у програмі і тому друкується.


1

PHP, JavaScript і BrainF * ck, 178 байт

Перший раз, коли я коли-небудь спробував «Поліглот» - не буду брехати, я тут над головою ...

Гольф:

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

(Я не наважувався написати їжу подяки в HTML-коді і вважати це іншою мовою ...)

Пояснення:

Код потрібно зберегти у .php-файл для частин PHP та JavaScript.

PHP:

При запуску на сервері PHP, PHP читається частина коду:

<?php echo "turkey";?>

Цей результат:

введіть тут опис зображення

JavaScript:

Ви можете викликати функцію JavaScript A()з консолі браузера:

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

Цей результат:

введіть тут опис зображення

Brainf * cK

Частина Brainf * ck добре прихована в коментарях у розділі JavaScript, тому її частини ігноруються частинами PHP та JavaScript:

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

Коли весь файл вставлений в IDE , він виводить:

введіть тут опис зображення

Я не міг би виконати частину Brainf * ck без цього веб-сайту BF. Спочатку я отримав його для створення коду для "кукурудзи", а потім, намагаючись дізнатися щось про цю божевільну мову, я перетворив її на "підлив" ... а точніше - "graVY" ...


1

Python, Clojure, Javascript, Ruby: 4 мови, 113 байт

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

Завдяки @ Sp3000 за більшу частину коду. Дивно, але мені навіть не довелося нічого робити з його оригіналом, я просто повинен був додати код Ruby.


1

///, SQL та JavaScript

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

Така ж конструкція, як і з іншим поліглотом, орієнтованим на відпочинок:

///

/*//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 байт

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

Тут родина Лісп. '()оцінює справжнє в Clojure, тому воно переходить до виведення символу turkey. PicoLisp та Common Lisp переходять у хибну гілку; ""вірно в Common Lisp, тому він друкує символ rolls, порожня рядок - помилкова в PicoLisp, і тому вона переходить до друку cornсимволу.

Перевірте це в Інтернеті:

https://ideone.com/OD65LB - Clojure

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

https://ideone.com/B4x3ns - PicoLisp


0

CJam, Underload,> <>, 39 байт

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

Що бачить CJam

  • 'v;: Буквал символів, який негайно відкидається
  • "(Turkey)S";: Строковий буквал, який негайно відкидається
  • "Gravy": Натискає рядок Gravyна стек
  • "\n'nroC'oooo;";: Строковий буквал, який негайно відкидається.

В кінці виконання стек виводиться, що означає, що "Gravy" друкується.

Що бачить Underload

  • 'v;": Деякі недійсні команди, які ігноруються
  • (Turkey)S: Натискає рядок "Turkey" і виводить його
  • ";"Gr: Деякі недійсні команди, які ігноруються
  • a: Це спричиняє сегментацію інтерпретатора TIO, оскільки стек порожній. Виконання припиняється.

Що> <> бачить

  • 'v;"(Turkey)S";"Gravy""натискає купу символів до стеку (які ігноруються). Потім IP обертається назад.
  • v передає IP вниз.
  • >'nroC'oooo висуває символи в рядку "Кукурудза" і виводить їх.
  • ;припиняє виконання. Усі інші символи ігноруються.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.