Гольф на Хеллоуїн: виклик 2spooky4me!


41

Поточний інтернет-мем повинен набрати 2spooky4me, а друга особа вводить 3spooky5me, слідуючи (n)spooky(n+2)meшаблону.

Ваша місія - реалізувати цю модель у вибраній мові. Ви повинні написати програму або функцію, яка приймає значення n(від стандартного введення, як аргумент функції або найближчої альтернативи) і виводить рядок (n)spooky(n+2)me(без дужок; до стандартного виводу, як зворотне значення для функції або найближчої альтернативи ).

Ваше рішення повинно працювати на всіх вхідних даних, 1приблизно до 2 нижче максимального представленого цілого значення вашої мови (наприклад, 2^32-3для C на 32-бітній машині).

Приклад реалізації в Python:

def spooky(n):
    return "%dspooky%dme"%(n,n+2)

spooky(2) -> "2spooky4me"

Це , тому стандартні лазівки заборонені, а найкоротша відповідь у байтах виграє!

Таблиця лідерів

Фрагмент стека внизу цієї публікації генерує таблицю лідерів з відповідей а) як список найкоротших варіантів для кожної мови та б) як загальну таблицю лідерів.

Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:

## Language Name, N bytes

де Nрозмір вашого подання. Якщо ви покращите свій рахунок, ви можете зберегти старі бали у заголовку, прокресливши їх. Наприклад:

## Ruby, <s>104</s> <s>101</s> 96 bytes

Якщо ви хочете включити у свій заголовок декілька чисел (наприклад, тому що ваш результат становить суму двох файлів або ви хочете окремо вказати штрафні санкції для перекладача), переконайтесь, що фактичний результат - це останнє число у заголовку:

## Perl, 43 + 2 (-p flag) = 45 bytes

Ви також можете зробити ім'я мови посиланням, яке з’явиться у фрагменті:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


2
Для бонусних очок: Введіть %dspooky%dme, підтвердіть і поверніть наступну серію.
плескати


7
Хто такий Денніс? : O
NuWin

10
@NuWin Денніс - шлях. Денніс - це світло.
Алекс А.

1
@NuWin Денніс - це любов, Денніс - це життя

Відповіді:


44

gs2, 15 байт

Я перевершив Денніса!

CP437:

spooky•me♣╨V↕0B

Шістнадцятковий дамп:

73 70 6f 6f 6b 79 07 6d 65 05 d0 56 12 30 42

На початку програми STDIN висувається (наприклад, рядок "3") і зберігається в змінній A. Перші десять байтів програми висувають два рядки "spooky"і "me", до стеку. Тоді:

  • d0штовхає змінну A.
  • 56 розбирає його як число.
  • 12 30 збільшується на два.
  • 42поміняє два верхні елементи на стеку, залишаючи "3" "spooky" 5 "me".

Кінцевий стек друкується як 3spooky5me.


4
Боже пекло, це коротко. +1
Addison Crump

11
GJ, але Денніс може приїхати сюди і перемогти тебе, щоб зберегти його репутацію.
TheDoctor

7
Що ні, як ви це зробили
спагето

3
Я щойно зрозумів ... чи означає gs2 "сценарій гольфу 2"?
mbomb007

5
До речі, я додав GS2 до своєї родини онлайн-перекладачів. Спробуйте в Інтернеті!
Денніс


24

Застряг, 17 байт

i_2+"spooky";"me"

РЕДАКТУЙТЕ: Вгадайте, що ви можете сказати, що я буду на 17 байт


1
Привіт здорово, хтось фактично використовує Stuck: D
Kade

@Shebang Мені справді дуже подобається Стюк. Хоча було б непогано, якби були якісь кращі методи маніпулювання масивами.
спагето

21

GolfScript, 17 байт

~.2+"spooky"\"me"

Спробуйте його онлайн на веб-сайті GolfScript .

Як це працює

~        # Evaluate the input.
.2+      # Push a copy and add 2.
"spooky" # Push that string.
\        # Swap it with the computed sum.
"me"     # Push that string.



10

Шеф-кухар, 414 байт

S.

Ingredients.
g i
2 g t
115 l s
112 l p
111 l o
107 l k
121 l y
109 l m
101 l e

Method.
Take i from refrigerator.Put e into mixing bowl.Put m into mixing bowl.Put i into mixing bowl.Add t.Put y into mixing bowl.Put k into mixing bowl.Put o into mixing bowl.Put o into mixing bowl.Put p into mixing bowl.Put s into mixing bowl.Put i into mixing bowl.Pour contents of mixing bowl into the baking dish.

Serves 1.

Рецепт катастрофи. Не намагайтеся цього вдома.


6
Мм. Це якісь моторошні смаки у вас там.
Аддісон Кримп

9

TeaScript, 18 байт

x+`spooky${x+2}me`

На жаль, цей рядок неможливо стиснути, тому він в основному такий короткий, як він отримає


12
Ласкаво просимо на 18-й байт! : P
спагетто

9

Піп, 18 байт

Схоже, я тут на другому рівні мов для гри в гольф. : ^ П

[a"spooky"a+2"me"]

Приймає число як аргумент командного рядка і поміщає відповідні елементи в масив, який об'єднується разом і автоматично відбивається в кінці програми.



8

Japt, 17 16 байт

U+"spooky{U+2}me

Japt ( Ja vascri pt skraно ) - мова мого винаходу. Це новіше, ніж цей виклик; таким чином, ця відповідь є неконкурентною. На відміну від моїх семи неопублікованих мов, у цієї є власний перекладач, який наразі розробляється і вже частково працює.

Я хотів опублікувати це, тому що мені подобається, як це однакова довжина, як і всі існуючі відповіді на перше місце на першому місці. Ось як це працює:

U+"spooky{U+2}me"    implicit: [U,V,W,X,Y,Z] = eval(input)
U+                   input +
  "spooky     me"     this string
         {U+2}         with input+2 inserted here
                     implicit: output last expression

І там у вас є. Спеціалізація для всіх функціональних можливостей, що використовуються тут, була остаточно завершена 29 жовтня; нічого не було змінено, щоб зробити цю відповідь коротшою. Ось перекладач , як і обіцяв.


Я впевнений, що це було до шоко, але я думаю, що ви могли це зробити {U}2meзамість {U+2}me: P
Олівер


7

Віци, 21 байт

Примітка: Zкоманда була зроблена після початку цього виклику, але не була зроблена для цього виклику.

VVN "ykoops" ZV2 + N "em" Z
V Візьміть верхній елемент стека (вхід) і зробіть його a
                       глобальна змінна.
 V Заклик його - натисніть глобальну змінну до верхньої частини стека.
  N Виведіть його як число.
   "ykoops" Натисніть на "моторошно" до стека.
           Z Виведіть все це.
            V2 + N Викличте глобальну змінну ще раз, додайте дві, а потім виведіть як число.
                "em" Z Натисніть "мене" на стек і виведіть все це.

Більше варіацій із записом за допомогою декількох стеків (27 байт):

& "ykoops" & "em"? DN? Z ?? 2 + N ?? Z

& Створіть новий стек і перейдіть до нього.
 "ykoops" Нажати "моторошно" на поточний стек.
         & "em" Зробіть останнє для речей зі "я".
              ? Перемістіть стопку.
               DN Виведіть вхід.
                 Z Наведіть курсор на стопку (таку, яка є моторошною) та роздрукуйте її.
                   ?? Повернення до початкового стека.
                     2 + N Додайте 2 на вхід і виведіть його як число.
                        Z Перейдіть до стопки із написом 'я' у ньому та роздрукуйте його.

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


Цікаво, чому обертаються рядки?
Кіос

Це натискання символів до стека одна за одною.
Soham Chowdhury

6

Джулія, 23 байти

n->"$(n)spooky$(n+2)me"

Це створює неназвану функцію лямбда, яка приймає ціле число і повертає рядок. Вихід побудований за допомогою рядкової інтерполяції Джулії.


5

Рубін, 25 байт

->n{"#{n}spooky#{n+2}me"}

Це створює неназвану лямбда, яка приймає ціле число і повертає рядок. Рядок побудований за допомогою інтерполяції рядка Рубі.


5

APL, 25 22 байт

⍕,'spooky','me',⍨∘⍕2+⊢

Це створює неназваний монадичний потяг функцій, який приймає ціле число зліва і повертає рядок.

Числові значення перетворюються в рядки за допомогою . Масив рядків об'єднується в одну рядок за допомогою .

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

Збережено 3 байти завдяки Томасу Ква!


5

Javascript (ES6) 23 21 байт

Проста функція, яка буде роздавлена ​​гольфними ланками:

_=>_+`spooky${_+2}me` 

_=>`${_}spooky${_+2}me`

Особлива подяка ETHproductions за збереження 2-х байт


ПОВІДОМЛЕННЯ! Можливо, ви зможете скоротити рядки шаблону, але я не можу придумати жодного способу зробити це
MayorMonty

Збережено два байти:_=>_+`spooky${_+2}me`
ETHproductions

Дякую, але тепер виправлення здається настільки очевидним, що я відчуваю себе дурним. Я думаю, що це найкоротший спосіб зробити це в Javascript, я можу помилитися (сподіваюся, я помиляюся)
Generic User

5

05AB1E, 14 10 байт

DÌs’ÿæªÿme

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

Не конкуруючи з 05AB1E є новішим, ніж ця проблема.

Пояснення

DÌs’ÿæªÿme

D                get input n and duplicate it
 Ì               increment by 2
  s              Swap. Stack is now [n+2, n].
   ’ÿæªÿme       Compressed string that expands to "ÿspookyÿme". The first ÿ is then replaced by n and the second by n+2.

2
Здається, це працює з Dвилученим на 9 байт
dzaima

4

PHP, 55 47 46 42 34 байт

<?=($a=$argv[1]).spooky.($a+2).me;

Приймає число як введення командного рядка.

Кредити :)

Завдяки манатурності за економію 4 байт!

Завдяки insertusernameзбережіть 8 байт!


function a($a){echo$a,"spooky",$a+2,"me";}
манатура

Ви можете зберегти 4 байти , видаливши "s. Можна навіть заощадити 4 байта більше , беручи рядок аргумент команди і відкинути функцію, наприклад: <?=($a=$argv[1]).spooky.($a+2).me;.
insertusernamehere

4

Chaîne , 15 байт

неконкурентознавство, мова розглядає питання

{i~}:-,}:{2+}me
{i~}            | input duplicate write
    :   :       | access dictionary with inner base-93 key
     -,}        | entry for "spooky"
         {2+}   | push 2, add previous two, write
             me | write me

Неявний вихід.


Вихід - спокоєм 4 2 "(розділений новий рядок)
Фабіан Шменглер

@fschmengler Я, мабуть, щось зіпсував під час оновлення перекладача. Будь ласка зачекайте.
Conor O'Brien

@fschmengler Добре, помилки виправлені. Це має працювати зараз.
Conor O'Brien


3

Simplex v.0.7 , 20 байт

Симплекс сьогодні просто не відчуває себе голодним. > _ <

i@R"spooky"&IIR"me"g
i@                   ~~ take input and copy to register
  R"spooky"          ~~ write that string to the strip (increment byte after every character)
           &II       ~~ write the register (incremented twice) to the strip
              R"me"  ~~ write that string to the strip
                   g ~~ output the strip

Ти все-таки бив Віци. oo
Addison Crump

@VoteToClose Не відчувай себе дуже погано. Остання симплексна версія мала б ~ 25 + символів. Так чи інакше, 20 або 21 байт не наближається до 17; -;
Conor O'Brien


1
@VoteToClose Що ви очікували? Він мод XD
Conor O'Brien

3
Нам потрібно додати це до списку мемів.
Аддісон Кримп

3

C, 58 байт

main(a,b)char**b;{printf("%sspooky%dme",*++b,atoi(*b)+2);}

atoi() може бути непотрібним.


1. Збій на моєму gcc, оскільки це залежить від порядку оцінювання. 2. Збережіть байт за допомогою int**b.
угорен

3

Математика, 45 27 байт

Print[#,"spooky",#+2,"me"]&

g=ToString[#]<>"spooky"<>ToString[#+2]<>"me"&

Дякуємо Мартіну Бюттнеру за значне покращення (і теплий прийом).


2
Ласкаво просимо до PPCG! Безіменні функції прекрасні, тому вам не потрібні g=і, я думаю, Print[#,"spooky",#+2,"me"]&повинні працювати також. :)
Мартін Ендер

Про що Row@{#,spooky,#+2,me}&? Вихід візуально схожий, якщо змінні не визначені.
2012рcampion

3

Мінколанг 0,10 , 49 байт

У мене немає способу перетворити цілі числа в рядки (все ж!), Тому це набагато довше.

"me"nd2+(dl%"0"+$rl:d)"spooky"2g(dl%"0"+$rl:d)$O.

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

Пояснення

(dl%"0"+$rl:d)виконує завдання перетворення int у рядок. Якби це було замінено одним символом (наприклад Z), то моє рішення склало б лише 23 байти .

"me"nd2+Z"spooky"2gZ$O.

ndприймає з введення ціле число і дублює його. 2+додає 2 і 2gпізніше отримує початковий вклад і ставить його на вершину стеку. $O.виводить весь стек у вигляді цілих чисел та зупиняється.


Невже коротше просто виводити числа як числа?
Sp3000

Виведення в якості числа автоматично додає простір до виводу. Отже, це було б "2 spooky4 мені".
El'endia Starman

3

Луа для вікон, 41 байт

n=io.read()print(n.."spooky"..n+2 .."me")

тест з луа для вікон

він приймає вхід через io.read, потім зберігається у змінній n, потім у цьому ж рядку друкується змінна n, потім "spooky", то n + 2, нарешті, вона друкує "me"


1
Видаліть пробіли та збережіть байтиn=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

1
@DigitalVeer - Без пробілів 2.буде розглядатися як число.
Єгор Скриптунов

p.lua: print(.....'spooky'.. ...+2 ..'me') Як запустити: lua51.exe p.lua 2Розмір = 35 байт.
Єгор Скриптунофф

3

Ротор, 15 байт

&"spooky"~2+"me

Мова була створена після виклику. Не працює в онлайн-перекладачі (використовує введення eval.)


Гребля сину. Ви перемогли Денніса. Нарешті. Ура!
Аддісон Кримп

1
Ротор для мене мертвий, не намагайся воскресити його, будь ласка.
спагетто

1
Гарна робота, навіть у Роторі !! Ви повинні нагородити це життям.
Rɪᴋᴇʀ

3

Печиво , 16 байт (неконкуренто)

Зауважте, що останні зміни на сторінці Github для цього виклику не були внесені, Cookie все ще розробляється.

wŕspooky[r+2]me"

Пояснення:

wŕspooky[r+2]me"
w                 start write command
 ŕ                take input
  spooky          write spooky
        [r+2]     compute input + 2
             me   write me
               "  close write command.

@Mego Чому ви додали неконкурентоспроможні? Просто питаю.

Мова була створена через 5 місяців після опублікування виклику.
Mego

@Mego не знав про цю систему. Дякую, що просвітили мене;)

Радий допомогти. Якщо подання є дійсним, але використовувані мови (мови) / функції не існували до опублікування виклику (або в основному, або в пісочниці), воно повинно бути позначене як неконкурентне, якщо тільки виклик спеціально дозволяє новішим мовам / функціям конкурувати.
Mego

Правильно. Що має сенс.

3

Желе, не конкуруючий

13 байт Ця відповідь не є конкурентоспроможною, оскільки виклик передує створенню желе.

+0,2ż“×¥X“ŀ`»

Я не можу допомогти КВАРТАЛЬНОГО КВАРТА

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

Як це працює

+0,2ż“×¥X“ŀ`»  Main link. Input: n

+0,2           Add [0, 2] to n, resulting in [n, n + 2].
     “×¥X“ŀ`»  Yield ['spooky, 'me'] by indexing into a dictionary.
    ż          Zip the results to left and right with each other.
               This yields [[n, 'spooky'], [n + 2, 'me']], which is flattened
               before printing.

7
Один не просто перевершує ... кварту?
Арктур

Я не можу, здається, перевершити квота, але, оскільки відповідь є неконкурентною, я можу надати деяку допомогу. +2ṭż“×¥X“ŀ`»
Ерік Аутгольфер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.