万圣节高尔夫:2spooky4me挑战!


41

当前的互联网模因是键入2spooky4me,第二个人按照该(n)spooky(n+2)me模式键入3spooky5me 。

您的任务是以您选择的语言实现此模式。您应该编写一个程序或函数,该程序或函数需要一个值n(来自标准输入,作为函数参数,或最接近的替代项),然后将字符串(n)spooky(n+2)me(不带括号)输出到标准输出,作为函数的返回值或最接近的替代项)。

您的解决方案应该适用于所有输入,从1最多2个(比语言的最大可表示整数值低2个以下)开始(2^32-3例如,对于32位计算机上的C)。

Python中的示例实现:

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

spooky(2) -> "2spooky4me"

这是,因此禁止标准漏洞,以字节为单位的最短答案为胜!

排行榜

这篇文章底部的Stack Snippet通过答案a)生成了排行榜,a)是每种语言的最短解决方案列表,b)则是总体排行榜。

为确保您的答案显示出来,请使用以下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,确认并返回下一个系列。
2015年

24
的确如此,但丹尼斯仍会取胜
2015年

7
丹尼斯是谁?:O
NuWin '16

10
@NuWin 丹尼斯就是这样。丹尼斯是光。
Alex A.

1
@NuWin丹尼斯是爱,丹尼斯是生命

Answers:


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")并存储在variable中A。程序的前十个字节将两个字符串"spooky"和推入"me"堆栈。然后:

  • d0推送变量A
  • 56 将其解析为数字。
  • 12 30 将其增加2。
  • 42交换堆栈中的前两个元素,离开"3" "spooky" 5 "me"

最终的堆栈打印为3spooky5me


4
天哪,这很短。+1
艾迪生·克伦普

11
GJ,但丹尼斯可能会过来并超越您以维护他的声誉。
TheDoctor 2015年

7
没有,您怎么做到的
意大利面条

3
我刚刚意识到... gs2代表“高尔夫脚本2”吗?
mbomb007

5
顺便说一句,我已经将GS2添加到我的在线口译员系列中,请在线尝试!
丹尼斯


24

卡住,17个字节

i_2+"spooky";"me"

编辑:猜猜您可能会说我被困在17字节


1
嘿,很酷,有人实际上在使用Stuck:D
Kade 2015年

@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

Chef,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

JaptJa 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

那里有它。此处使用的所有功能的规范于10月29日完成;没有任何变化可以使此答案更短。如所承诺的,这里是口译员


我敢肯定,这是事前炒作,但我认为您可以做的{U}2me不是{U+2}me:P
Oliver

7

Gol> <>,21个字节

I:n"emykoops"6Ro{2+nH

我想我与Perl并驾齐驱?在线尝试

I:n            Input n, output n
"emykoops"     Push chars
6Ro            Output top 6 chars (spooky)
{2+n           Output n+2
H              Output stack and halt (me)

7

Vitsy,21字节

注意:该Z命令是在此挑战开始后做出的,但不是针对此挑战而做出的。

VVN“ ykoops” ZV2 + N“ em” Z
V抓住堆栈顶部的内容(输入),使其成为
                       全局变量。
 V调用它-将全局变量推到栈顶。
  N将其输出为数字。
   “ ykoops”将'spooky'推入堆栈。
           Z全部输出。
            V2 + N再次调用全局变量,加两个,然后输出为num。
                “ em” Z将'me'推入堆栈并全部输出。

使用多个堆栈(27字节)的更多变化:

&“ ykoops”&“ em”?DN?Z ?? 2 + N ?? Z

&创建一个新的堆栈并移动到它。
 “ ykoops”将'spooky'推送到当前堆栈。
         &“ em”以'me'做最后的事情。
              ?在堆栈上移动。
               DN输出输入。
                 ?Z在堆栈上移动(带有“怪异”的堆栈)并打印。
                   ?? 移回原始堆栈。
                     2 + N将2加到输入并将其输出为数字。
                        Z移到其中带有“ me”的堆栈并打印。

在线尝试!


只是想知道,为什么字符串会被反转?
Cyoce '16

它将字符一一推入堆栈。
苏厄姆·乔杜里

6

朱莉娅,23个字节

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

这将创建一个未命名的lambda函数,该函数接受一个整数并返回一个字符串。输出使用Julia的字符串内插法构造。


5

Ruby,25个字节

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

这将创建一个未命名的lambda,它接受一个整数并返回一个字符串。该字符串是使用Ruby的字符串插值构造的。


5

APL,25 22字节

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

这将创建一个未命名的单子函数列,该函数列在左侧接受一个整数并返回一个字符串。

数值使用转换为字符串。使用将字符串数组连接成单个字符串

在线尝试

感谢Thomas Kwa,节省了3个字节!


5

Javascript(ES6)23 21字节

一个简单的功能,会被打高尔夫球的习惯所压倒:

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

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

特别感谢ETHproductions节省了2个字节


注意!您也许可以缩短模板字符串,但我想不出任何办法
MayorMonty,2015年

保存了两个字节:_=>_+`spooky${_+2}me`
ETHproductions 2015年

谢谢,但是现在修复似乎很明显,我感到很愚蠢。我认为这是用Javascript执行此操作的最短方法,我可能错了(我希望我错了)
通用用户

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个字节!

感谢在此插入用户名,节省了8个字节!


function a($a){echo$a,"spooky",$a+2,"me";}
manatwork'2015-10-31

删除s 可以节省 4个字节"。您甚至可以通过使用命令行参数来节省 4个字节,并丢弃该函数,如下所示:<?=($a=$argv[1]).spooky.($a+2).me;
此处插入用户名,2015年

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”(换行符分隔)
Fabian Schmengler,2015年

@fschmengler在更新解释器时,我一定搞砸了。请稍等
Conor O'Brien 2015年

@fschmengler好吧,错误已得到修复。现在应该可以工作了。
Conor O'Brien 2015年


3

单面v.0.7,20字节

Simplex今天根本感觉不到高尔夫球。> _ <

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

您仍然击败了Vitsy。oo
Addison Crump 2015年

@VoteToClose不要太难过。上一个Simplex版本的字符数约为25个以上。无论哪种方式,20或21个字节都不会接近17;-;
Conor O'Brien 2015年


1
@VoteToClose您期望什么?他是mod XD
Conor O'Brien 2015年

3
我们需要将此添加到模因列表。
艾迪生·克伦普

3

C,58字节

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

atoi() 可能是不必要的。


1.失败gcc,因为它取决于评估顺序。2.用保存一个字节int**b
ugoren 2015年

3

Mathematica,45 27个字节

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

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

感谢MartinBüttner所做的重大改进(以及热烈的欢迎)。


2
欢迎来到PPCG!未命名的函数很好,因此您不需要g=,我认为Print[#,"spooky",#+2,"me"]&也可以使用。:)
马丁·恩德

Row@{#,spooky,#+2,me}&呢 如果未定义变量,则输出在外观上相似。
2012rcampion 2015年

3

Minkolang 0.10,49个字节

我还没有办法将整数转换为字符串(还!),所以这要长得多。

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

在这里尝试。

说明

(dl%"0"+$rl:d)完成将int转换为字符串的工作。如果将其替换为单个字符(如Z),那么我的解决方案将仅为23 bytes

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

nd从输入中获取一个整数并将其复制。2+加2,2g然后获取初始输入并将其放在堆栈顶部。$O.将整个堆栈输出为整数并停止。


当然,仅将数字输出为数字会更短吗?
Sp3000

输出为数字会自动在输出中添加一个空格。这样就应该是“ 2 spooky4 me”。
El'endia Starman

3

用于Windows的Lua,41个字节

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

用lua测试Windows

它通过io.read接受输入,然后存储在变量n中,然后在同一行上打印变量n,然后是“诡异的”,然后是n + 2,最后它输出的是“ me”


1
删除空格并保存字节n=io.read()print(n.."spooky"..n+2.."me")
Digital Veer

1
@DigitalVeer-没有空格2.将被视为数字。
Egor Skriptunoff 2015年

p.lua:print(.....'spooky'.. ...+2 ..'me') 如何运行:lua51.exe p.lua 2大小= 35字节。
Egor Skriptunoff 2015年

3

转子,15字节

&"spooky"~2+"me

语言是挑战之后创造的。在在线解释器中不起作用(使用输入值)。


子 你超越了丹尼斯。最后。万岁!
Addison Crump

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个字节 这个答案是非竞争性的,因为挑战早于创建Jelly。

+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
一个不只是超越高尔夫...四合奏?
Arcturus

我似乎无法超越四方,但是,由于答案没有竞争,我可以提供一些帮助。+2ṭż“×¥X“ŀ`»
暴民埃里克(Erik the Outgolfer)'17年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.