ハロウィーンゴルフ:2spooky4meチャレンジ!


41

現在のインターネットミームは、2spooky4meと入力し、2番目の人が(n)spooky(n+2)meパターンに従って3spooky5meと入力することです。

あなたの使命は、選択した言語でこのパターンを実装することです。n(標準入力から、関数の引数、または最も近い代替として)値を取り、文字列を出力するプログラムまたは関数を作成する必要があります((n)spooky(n+2)me括弧なし;関数の戻り値、または最も近い代替として標準出力に) )。

ソリューションは1、言語の最大表現可能整数値の最大2未満(2^32-3たとえば、32ビットマシンのCの場合)からすべての入力に対して機能するはずです。

Pythonでの実装例:

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

spooky(2) -> "2spooky4me"

これはであるため、標準の抜け穴は禁止されており、バイト単位の最短回答が優先されます!

リーダーボード

この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、およびb)リーダーボード全体としての回答からリーダーボードを生成します。

回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。

## Language Name, N bytes

N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:

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

ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。

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

言語名をリンクにして、スニペットに表示することもできます。

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


2
ボーナスポイントの場合:入力し%dspooky%dme、検証し、次のシリーズに戻ります。
拍手


7
デニスとは誰ですか?:O
NuWin

10
@NuWin Dennisが道です。デニスは光です。
アレックスA.

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")、variableに格納されますA。プログラムの最初の10バイトは、2つの文字列"spooky""me"をスタックにプッシュします。次に:

  • d0変数をプッシュしますA
  • 56 数値として解析します。
  • 12 30 2ずつ増加します。
  • 42スタックの上の2つの要素を交換して、を残し"3" "spooky" 5 "me"ます。

最終スタックはとして印刷され3spooky5meます。


4
神聖な地獄、それは短いです。+1
アディソンクランプ

11
GJ、しかしデニスはここに来て彼の評判を守るためにあなたをmodすかもしれません。
TheDoctor

7
何をなしどのようにあなたがやったのか
spaghetto

3
気付いたのは…gs2は「ゴルフスクリプト2」の略ですか?
mbomb007

5
ところで、私はGS2をオンライン通訳者の家族に追加しました。オンライン
デニス


24

スタック、17バイト

i_2+"spooky";"me"

編集:17バイトで私はスタックしているとあなたは言うと思います


1
ちょっとクール、誰かが実際にStuckを使用している:D
Kade

@Shebang私は実際にStuckが大好きです。配列を操作するためのより良い方法があればいいのですが。
spaghetto

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
spaghetto

9

ピップ、18バイト

私はここでゴルフ言語の第2層にいるようです。:^ P

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

コマンドライン引数として数値を受け取り、適切な要素を配列に入れます。配列は結合され、プログラムの最後に自動印刷されます。



8

Japt、17 16バイト

U+"spooky{U+2}me

JaptJa vascri pt短縮)は、私の発明の言語です。この課題よりも新しいものです。したがって、この答えは競合しません。私の他の7つの未公開言語とは異なり、この言語には現在開発中の実際のインタープリターがあり、すでに部分的に機能しています。

これを投稿したかったのは、既存のすべての1位と 2位の回答と同じ長さであることが好きだからです。仕組みは次のとおりです。

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-
オリバー


7

Vitsy、21バイト

注:Zコマンドは、このチャレンジの開始後に作成されましたが、このチャレンジ用には作成されませんでした。

VVN "ykoops" ZV2 + N "em" Z
Vスタックの一番上のアイテム(入力)を取得し、それを
                       グローバル変数。
 V呼び出す-グローバル変数をスタックの一番上にプッシュします。
  N数値として出力します。
   「ykoops」「spooky」をスタックにプッシュします。
           Zすべてを出力します。
            V2 + Nグローバル変数を再度呼び出し、2を追加してから、numとして出力します。
                「em」Z「me」をスタックにプッシュし、すべて出力します。

複数のスタック(27バイト)を使用したより不気味なバリエーション:

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

&新しいスタックを作成して移動します。
 「ykoops」「spooky」を現在のスタックにプッシュします。
         & "em" 'me'で物事の最後を行います。
              ?スタックを移動します。
               DN入力を出力します。
                 ?Zスタック( 'spooky'のあるもの)の上を移動して印刷します。
                   ?元のスタックに戻ります。
                     2 + N入力に2を加算し、数値として出力します。
                        ?? Z「me」が入っているスタックに移動して印刷します。

オンラインでお試しください!


ただ、なぜ文字列が反転しているのだろうか?
チョイス

文字を1つずつスタックにプッシュしています。
ソーハムチョードリー

6

ジュリア、23バイト

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

これにより、整数を受け入れて文字列を返す名前のないラムダ関数が作成されます。出力は、ジュリアの文字列補間を使用して構築されます。


5

ルビー、25バイト

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

これにより、整数を受け入れて文字列を返す名前のないラムダが作成されます。文字列は、Rubyの文字列補間を使用して構築されます。


5

APL、25 22バイト

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

これにより、左側の整数を受け入れて文字列を返す名前のないモナド関数列が作成されます。

数値は、を使用して文字列に変換されます。文字列の配列は、を使用して単一の文字列に結合されます

オンラインで試す

Thomas Kwaのおかげで3バイト節約できました!


5

Javascript(ES6)23 21バイト

ゴルフのランクによって押しつぶされる単純な関数:

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

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

2バイトを節約してくれたETHproductionsに感謝します


いいね!テンプレート文字列を短くすることはできるかもしれませんが、その方法は考えられません
-MayorMonty

2バイトの節約:_=>_+`spooky${_+2}me`
ETHproductions

ありがとう、しかし今修正はとても明白なようで、私は愚かだと感じます。これは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
これはD9バイトの削除で動作するようです
-dzaima

4

PHP、55 47 46 42 34バイト

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

コマンドライン入力として番号を受け入れます。

クレジット:)

4バイトを節約してくれたmanatworkに感謝します!

8バイトを保存してくれたinsertusernamehereに感謝します!


function a($a){echo$a,"spooky",$a+2,"me";}
マナトワーク

sを削除すると、4バイト節約 できます。次のように、コマンドライン引数を取り、関数を破棄することで、さらに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

暗黙的な出力。


出力は、(改行分離) `spookyme 4 2"
ファビアンSchmengler

@fschmengler通訳を更新している間に何かを台無しにしたに違いない。お待ちください。
コナーオブライエン

@fschmenglerよし、バグは修正されました。これで動作するはずです。
コナーオブライエン


3

シンプレックス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気分を悪くしないでください。最後のシンプレックスバージョンは、25文字以上でした。どちらにしても、20または21バイトは17に近づきません;-;
コナーオブライエン


1
@VoteToClose何を期待しましたか?彼はmod XD
コナーオブライエン

3
これをミームリストに追加する必要があります。
アディソンクランプ

3

C、58バイト

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

atoi() 不要な場合があります。


1. gcc評価順序に依存するため、my で失敗します。2.でバイトを保存しますint**b
ウゴレン

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

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バイトになります

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

nd入力から整数を取り、それを複製します。2+2 2g以降を追加すると、最初の入力が取得され、スタックの先頭に配置されます。$O.スタック全体を整数として出力し、停止します。


確かに、数字を数字として出力する方が短いでしょうか?
Sp3000

数値として出力すると、出力にスペースが自動的に追加されます。したがって、「2 spooky4 me」になります。
エレンディアスターマン

3

Windows用のLua、41バイト

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

Windows用のLuaでテストする

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

言語はチャレンジ後に作成されました。オンライン通訳では機能しません(入力評価を使用します)。


ダムの息子。デニスを追い抜いた。最後に。やった!
アディソンクランプ

1
ローターは死んでいるので、復活させないでください。
spaghetto

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そのシステムについて知りませんでした。私を啓発してくれてありがとう;)

喜んでお手伝いします。提出が有効であるが、使用する言語/機能がチャレンジの投稿前(メインまたはサンドボックス内)に存在していなかった場合、非競合としてマークする必要があります。ただし、チャレンジは、特に新しい言語/機能の競争を可能にします。
メゴ

右。それは理にかなっている。

3

ゼリー、非競合

13バイト チャレンジはゼリーの作成よりも前であるため、この回答は競合しません。

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

QUARTATAヘルプを発信できません

オンラインでお試しください!

使い方

+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
1つは単にゴルフをしていません...
アークトゥルス

私はゴルフ四分の一を超えるようには見えませんが、答えは競合的ではないので、私はいくつかの助けを与えることができます。+2ṭż“×¥X“ŀ`»
エリックアウトゴルファー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.