Хэллоуин Гольф: 2spooky4me Challenge!


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"

Это , поэтому стандартные лазейки запрещены, и выигрывает самый короткий ответ в байтах!

Leaderboard

Фрагмент стека внизу этого поста генерирует таблицу лидеров из ответов а) в виде списка кратчайшего решения для каждого языка и б) в качестве общей таблицы лидеров.

Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:

## 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
Аддисон Крамп

11
GJ, но Деннис может прийти сюда и перехитрить тебя, чтобы сохранить свою репутацию.
Доктор

7
Что нет, как, как ты это сделал
спагетто

3
Я только что понял ... gs2 означает "сценарий гольфа 2"?
mbomb007

5
Кстати, я добавил GS2 в свою семью онлайн-переводчиков, попробуйте онлайн!
Деннис

30

GS2, 17 байт

56 40 27 27 04 73 70 6F 6F 6B 79 05 42 04 6D 65 05

Я не могу помочь Деннису



3
Чувак, это так странно, что в настоящее время у нас есть 4 языка, привязанных к первому, и 3 языка, привязанных к второму: P
ETHproductions

24

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

i_2+"spooky";"me"

РЕДАКТИРОВАТЬ: думаю, вы могли бы сказать, что я застрял на 17 байт


1
Эй, круто, кто-то на самом деле использует Stuck: D
Kade

@Shebang Мне действительно очень нравится Stuck. Хотя было бы неплохо, если бы у него были лучшие методы для манипулирования массивами.
спагетто

21

GolfScript, 17 байт

~.2+"spooky"\"me"

Попробуйте онлайн на Web 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 байт

Похоже, я на втором уровне языков игры в гольф здесь. : ^ P

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

Принимает число в качестве аргумента командной строки и помещает соответствующие элементы в массив, который объединяется и автоматически печатается в конце программы.



8

Japt, 17 16 байт

U+"spooky{U+2}me

Джапт ( Ja vascri pt сокращен) - язык моего изобретения. Это новее, чем этот вызов; таким образом, этот ответ не является конкурирующим. В отличие от других моих семи неопубликованных языков, у этого есть реальный переводчик, который в настоящее время разрабатывается и уже частично работает.

Я хотел опубликовать это, потому что мне нравится, как он имеет ту же длину, что и все существующие ответы на первое место на втором месте. Вот как это работает:

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команда была создана после начала этого вызова, но не была создана для этого вызова.

ВВН "ykoops" ZV2 + N "эм" Z
V Возьмите верхний элемент стека (вход) и сделайте его
                       глобальная переменная.
 V Вызовите это - поместите глобальную переменную в верхнюю часть стека.
  N Выведите его как число.
   «ykoops» Вставьте «жуткий» в стек.
           Z Вывести все это.
            V2 + N Снова вызвать глобальную переменную, добавить два, а затем вывести как num.
                «em» Z Вставьте «me» в стек и выведите все.

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

& "Ykoops" и "EM"? DN? Z ?? 2 + N, Z ??

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

Попробуйте онлайн!


Просто интересно, почему строки перевернуты?
Cyoce

Это толкает символы в стек один за другим.
Сохам Чоудхури

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


Noice! Возможно, вам удастся сократить строки шаблона, но я не могу придумать, как это сделать.
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;

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

Кредиты :)

Спасибо manatwork за сохранение 4 байта!

Спасибо insertusername здесь за сохранение 8 байт!


function a($a){echo$a,"spooky",$a+2,"me";}
manatwork

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

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

Неявный вывод.


Вывод: "spookyme 4 2" (
новая строка

@fschmengler Я, должно быть, что-то напутал, обновляя переводчик. Подождите, пожалуйста.
Конор О'Брайен

@fschmengler Хорошо, ошибки были исправлены. Это должно работать сейчас.
Конор О'Брайен


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
Эддисон Крамп

@VoteToClose Не чувствую себя слишком плохо. Последняя версия Simplex была бы ~ 25 + символов. В любом случае, 20 или 21 байт не приближаются к 17; -;
Конор О'Брайен,


1
@VoteToClose Что вы ожидали? Он мод XD
Конор О'Брайен

3
Нам нужно добавить это в список мемов.
Эддисон Крамп

3

C 58 байт

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

atoi() может быть ненужным.


1. Сбой на моем gcc, потому что это зависит от порядка оценки. 2. Сохранить байт с помощью int**b.
Угорен

3

Mathematica, 45 27 байт

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

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

Спасибо Мартину Бюттнеру за значительное улучшение (и теплый прием).


2
Добро пожаловать в PPCG! Неназванные функции в порядке, поэтому вам не нужно, g=и я думаю, что Print[#,"spooky",#+2,"me"]&должно работать. :)
Мартин Эндер

Как насчет Row@{#,spooky,#+2,me}&? Вывод визуально похож, если переменные не определены.
2012 rcampion

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

Lua для windows, 41 байт

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

тест с lua для windows

он принимает входные данные через 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

Cookie , 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“ŀ`»
Эрик Outgolfer

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.