お気に入りのプログラミング言語にハッピーバースデーを歌います


119

お気に入りのプログラミング言語は誕生日を迎えたばかりです。素敵になり、ハッピーバースデーの歌を歌ってください。

もちろん、その言語でプログラムを書くことでこれを達成する必要があります。プログラムは入力を受け取らず、次のテキストを標準出力または任意のファイルに書き込みます。

Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear [your favourite programming language]
Happy Birthday to You

括弧で囲まれた部分を置き換える必要があります(括弧を省略します)。

これはコードゴルフです。最短のコードが勝ちます。

更新

この質問が大きな関心を呼んだことを嬉しく思います。スコアリングに関する追加情報を追加しましょう。もともと述べたように、この質問はコードゴルフであるため、最短のコードが勝ちます。勝者は今週の終わり(10月19日)に選出されます。

しかし、私はまた、他の機知に富んだ提出物に高額の投票で報います(そして、私も皆にそうすることを勧めます)。したがって、これはコードとゴルフのコンテストですが、それほど短くない回答も歓迎します。

結果

このコンテストの勝者であるオプティマイザー、おめでとう、42バイトの長さのCJam 提出


2
プログラミング言語の名前を1バイトとして数えることができるのは、JavaScriptのような長い風の言語でコーディングしている人と、Cでそれをやっている人にとっては公平に思えるからです。
MonkeyZeus 14年

14
ボンボンの歌のすべてのダウン投票にもかかわらず、なぜこれに対するすべてのアップ投票が必要なのですか?これは退屈な挑戦と同じです。
xnor

10
おそらく、この曲は著作権で保護されており、これらのプログラムを配布するとDMCAが発生する可能性があります
ラチェットフリーク


4
少なくとも1つの答えは、主要な改行を出力します。それは許されますか?
デニス

回答:


47

CJam、46 42バイト

"Happy Birthday to You
"___F<"Dear CJam
"@

使い方:

"Happy Birthday to You
"___                          "Push "Happy Birthday to You\n" string to stack 4 times";
    F<                        "From the last string, take only first 15 characters. F is a";
      "Dear CJam              "preinitialized variable whose value is 15";
"                             "Push "Dear CJam\n" to stack";
 @                            "Take the third string from end and put it to end";

これにより、コードの最後にスタックが次のように残ります。

["Happy Birthday to You
" "Happy Birthday to You
" "Happy Birthday " "Dear CJam
" "Happy Birthday to You
"]

として自動的に印刷されて出力されます

Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear CJam
Happy Birthday to You

ここで試してみてください(コードをコピーして実行します)


1
「最初の15文字」はFからのものですか?それは15番をどのように知っているのですか?
vijrox

1
うん、10〜15歳です。
ジェイコブ

122

LOLCODE:109(「正しい」スペルの105)

LOLCODEは、特にコードを短縮するとすべての美しさと表現力が失われるため、ゴルフに適した言語ではありません。

HAI
H R "HAPPY BIRTHDAY "
T R SMOOSH H "TO YOU"
VISIBLE T
VISIBLE T
VISIBLE SMOOSH H "DEAR LOLCODE"
VISIBLE T

loljsを使用してテストする

これは私の好みのレンディションで、187文字(わかりやすくするためにスペースが追加されています)で重み付けされています。

HAI
H R "HAPPY BERFDAY "
IM IN YR LOOP UPPIN YR N TIL BOTH SAEM N AN 4
  VISIBLE H!
  BOTH SAEM N AN 2, O RLY?
    YA RLY
      VISIBLE "DEER LOLCODE"
    NO WAI
      VISIBLE "2U"
    OIC
IM OUTTA YR LOOP
KTHXBAI

15
これにLOLCODEの答えがあることを知っていました。ところで、kan u wryt n lwrcase insyd t kwotez?KTHXBYE。
レベルリバーセント14年

2
少し前に別の課題に対するLOLCODEの回答を書いてみましたが、コードゴルフには冗長すぎて、まともなデータ構造と複雑な機能を作成する機能がないため、かなり努力が制限されていました!

3
この答えは、私にLOCODEをダウンロードし、実際に適切に学習したいという衝動を与えました。
ファラプ14年

2
これは素晴らしい!!
AStopher 14年

89

Mathematica-バーコードの誕生日の願い-あまりにも多くのバイト

これは、詩を印刷し、声に出して読みます。

お誕生日おめでとうございます

あなたにハッピーバースデー
ハッピーバースデーあなたに
ハッピーバースデー親愛なるMathematicaの
あなたにハッピーバースデー

StringReplace各コンマをNewLineに置き換えます。バーコードに制御文字を含めることはできません。


13
キーボードにバーコードボタンが表示されません!これをどのようにテストできますか?
matsjoyce 14年

17
10バーコード(右下隅)BarcodeRecognizeにMathematica 10で導入されたことを見るのが大好きです。^^
Martin Ender 14年

はい!私はそれに気づかなかった。
DavidC 14年

11
実際にQRコードリーダーでこれをスキャンしました。すべてのコンマの後に余分なスペースがあります。バイトを節約できませんでした。気にしないで。
ティムウィ

55

TI-Basic、53バイト

さて、誰もが自分の好きなプログラミング言語を作成しているので、古いお気に入りの1つを追加することもできます。私は長年(実際のプログラミング言語を卒業する前に)スマートフォンの半分のサイズのウィンドウにコマンドを入力するのに多くの時間を費やしました。

"HAPPY BIRTHDAY TO YOU
Disp Ans,Ans,sub(Ans,1,15)+"DEAR TI-BASIC
Ans

私の計算機は小文字をサポートしていません。文字列にできる変数はStr1、Str2などだけです。


TI-Basicのどのフレーバーですか?TI-84でこれに本当に慣れました。
ジェサンファフォン

7
TI-Basicを見るのはいつもいいです。これは標準の8x TI-Basicのようで、式は自動的にAnsに保存されます。これは、奇妙でわかりにくい最適化戦略を使用できます。また、この素晴らしい言語でプログラミングを始めました。
codebreaker

4
編集者への注意:コメントを編集するだけでなく、コメントに変更(この場合は8文字の損失)を投稿できますか?これは、まだこれが私の答えだと感じさせます。
ストレッチマニア

2
+1 !! それが私もプログラミングを学んだ方法です。TI-83:DのTronを作成しましたが、かなり遅いので面白くありませんでした。
ナクト14年

2
ハハそれは素晴らしいです。TI-83用のブラックジャックゲームを作りました。その過程で、私はブラックジャックのすべてのルールを非常に親密に学びました。
thomasrutter 14年

44

Sed、60 55バイト

sed入力なしで動作させる方法がないため、1文字追加されました。)

s/^/Happy Birthday To You/
h
G
G
G
s/To You/Dear sed/3

確かに勝者ではなく、n 番目のオカレンスのみを置き換えるsedという珍しいs///機能を示すために投稿されました。

bash-4.3$ sed 's/^/Happy Birthday To You/;h;G;G;G;s/To You/Dear sed/3' <<< ''
Happy Birthday To You
Happy Birthday To You
Happy Birthday Dear sed
Happy Birthday To You

Sed(短いが面白くない):52文字

s/^/Happy Birthday To You/
h
G
p
s/To You/Dear sed/

サンプル実行:

bash-4.3$ sed 's/^/Happy Birthday To You/;h;G;p;s/To You/Dear sed/' <<< ''
Happy Birthday To You
Happy Birthday To You
Happy Birthday Dear sed
Happy Birthday To You

7
sed答えは常に勝者ですIMO :)
デジタルトラウマ

短い答えは51のバイトではなく、あなたが列挙されている52のように見える
テイラー・スコット

1
@TaylorScott、上部の説明もそこで適用されました:「(sed入力なしで動作するようにする方法がないため、1文字が追加されました。)」。
マナトワーク

ああ、それは理にかなっている:)
テイラースコット

30

C、73バイト

main(c){for(;c-5;)printf("Happy Birthday %s\n",++c-4?"To You":"Dear C");}

重要でないバグ:である必要がありますi++-3。(現在、2行目に「親愛なるc」が表示されています。)(1つの変数を使用している間、「c」と名前を付けます。)
manatwork 14年

定数が修正され、変数が変更されました。コードを短くするアイデアはありますか?
VX

申し訳ありませんが、短縮する考えはありません。Cは私の強さではありません。(バグを見つけたのは、あなたの現在のスコアでさえ信じられないほどでしたので、試してみる必要がありました;))
マナトワーク14年

12
「Dear C」(大文字)ではないですか?
TRiG

私は...そこinterpunction文字も欠場
VX

27

Python、61 60 59

H="\nHappy Birthday to You"
print(H*3)[:60]+"Dear Python"+H

1
1バイトを節約できます- H="\nHappy Birthday to You"そしてprint(H*3)[:59]+" Dear Python"+H
ストレッチマニア

1
これはPython 2.7または3ですか?
ジョージ

2
@George:Python 2.7 print。引数を囲む括弧がないため。
ファルコ

1
インタラクティブインタープリターからの出力はカウントされますか?h="\nHappy Birthday to You";(h*3)[:60]+"Dear Python"+h
threed

1
前にスペースを削除してにDear変更59すると、もう1つ保存できます60
threed

26

sh、52

H()(echo Happy Birthday ${@-to You});H;H;H Dear sh;H

3
デフォルト値のパラメーター展開では、わずか53文字ですH()(echo Happy Birthday ${@:-to You});H;H;H Dear sh;H
マナトワーク14年

とても良い@manatwork!
デジタル外傷

2
一方で、パラメータが設定されていなかった場合は動作します-あなたはパラメータ展開のコロンを省略することができ:-、それが設定されていますが、空にされたときにも、ケースをカバー

@professorfishニース-ありがとう、私はそれを知りませんでした!
デジタル外傷

あなたが文字を保存する必要がある場合に見て@DigitalTrauma良い場所ですwiki.bash-hackers.org/syntax/pe -すべてのパラメータの拡張構文のリストがあります

22

ArnoldC、228バイト

アーノルド・シュワルツェネッガーを歌いましょう...

IT'S SHOWTIME
TALK TO THE HAND "Happy Birthday to You"
TALK TO THE HAND "Happy Birthday to You"
TALK TO THE HAND "Happy Birthday Dear ArnoldC"
TALK TO THE HAND "Happy Birthday to You"
YOU HAVE BEEN TERMINATED

出力:

Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear ArnoldC
Happy Birthday to you


@squeamishossifrage lol、修正済み。
ワシ14年

16
おそらく、Ahnold lispを追加できます!Hahpy Birfday4.で文字カウントを減らす
コンパス


19

シェークスピアプログラミング言語、3429バイト

誰もSPLでチャレンジに参加できるほど痴呆になることはありません。

少し前の私自身の言葉。それでも、誰かがそれをするのに十分なほど痴呆になりました。はい、はい、知っています。バイトが多すぎます。しかし、SPLはここに含まれるに値する、と思います。そして私を信じて、私はこのプログラムを「ゴルフ」するために膨大な努力をしました、それが少し反復的であり、ほとんど同じ言葉を使用する理由です(私は常にDLoscの提案に従いましたが、それは私にとっても極端でした。

A Happy Birth Day

Ajax, a hero
Ford, a man

          Act I: 1

          Scene I: 1

[Enter Ajax and Ford]

Ajax:
 You are nothing!

          Scene II: 2

Ford:
 Am I nicer than the sum of a big cow and a son?

Ajax:
 If so, we shall go to Scene V. You are as big as the sum of thyself and a cat!

          Scene III: 3

Ford:
 You are as red as the sum of a big red warm rich bold fair cat and a big rich fine son.
 Speak thy mind! You are as big as the sum of thyself and the sum of a cute fair fine
 rich cat and a hog! Speak thy mind! You are as big as the sum of thyself and the sum
 of a cute fair fine rich cat and a hog. Speak thy mind. Speak thy mind! You are as bold as
 the sum of thyself and the sum of a big fine fair cat and a cow. Speak thy mind! You are
 as big as a red old fair fine tiny cow. Speak thy mind! You are as old as the sum of
 thyself and the sum of a red old fair fine tiny cow and a big joy. Speak thy mind.
 You are as red as the sum of thyself and the sum of the sum of a red old fair fine
 tiny cow and a rich old red sky and a pig. Speak thy mind! You are as old as the sum
 of thyself and the sum of a big fine fair joy and a son. Speak thy mind. You are as
 red as the sum of thyself and a cute son. Speak thy mind! You are as cute as the sum
 of thyself and the sum of a bad fat vile pig and a fat bad lie. Speak thy mind! You are
 as fat as the sum of thyself and a vile evil war. Speak thy mind! You are as vile as the
 sum of thyself and the sum of a pig and a toad. Speak thy mind! You are as fair as the
 sum of thyself and the sum of a big fair hard fine son and a red fine fair joy. Speak
 thy mind! Are you as old as a big cow?

Ajax:
 If so, we shall go to Scene IV.

Ford:
 You are as big as a red old fair fine tiny cow. Speak thy mind! You are as old as the sum
 of thyself and the sum of the sum of a big red warm rich bold fair cat and a red old fair
 fine tiny cow and a bad hog. Speak thy mind! You are as big as the sum of thyself and the
 sum of a fat bad hog and a war. Speak thy mind! You are as big as a red old fair fine tiny
 cow. Speak thy mind! You are as old as the sum of thyself and the sum of a big red warm
 rich bold fair cat and a fat foul bad hog and a son. Speak thy mind. You are as fat as
 the sum of thyself and the sum of the sum of a big fair hard fine son and a big fine
 fair joy and a bad pig. Speak thy mind. 

Ajax:
 Let us return to Scene II.

          Scene IV: 4

Ford:
 You are as big as a red old fair fine tiny cow. Speak thy mind! You are as old as the
 sum of thyself and a big red warm rich bold fair cat and a warm sky. Speak thy mind.
 You are as fat as the sum of thyself and the sum of a red old fair fine tiny cow and a
 cat. Speak thy mind. You are as fat as the sum of thyself and a bad foul hog. Speak
 thy mind. You are as cute as the sum of thyself and the sum of a big fair hard fine
 son and a sky. Speak thy mind. You are as big as a red old fair fine tiny cow. Speak thy
 mind! You are as old as the sum of thyself and the sum of thyself and the sum of the sum
 of the sum of a red old fair fine tiny cow and a big fair hard fine son and a big joy and
 a son. Speak thy mind. You are as bad as the sum of thyself and the sum of a fat pig and a
 hog. Speak thy mind. You are as fat as the sum of thyself and a lazy pig. Speak thy mind.

Ajax:
 Let us return to Scene II.

          Scene V: 5

[Exeunt]

このすべての意味は?

これらすべてがどのように機能するかについて知りたい場合は、私の推論を説明してみましょう。まず、変数。それらはシェイクスピア劇から来なければなりません。そして、タラクターの数が重要なので、小さいものを選ばなければなりません。このように、AjaxFord表示されます。宣言後に説明が必要です(これは無視されますが、まだです)。一文字でも使えたかもしれませんが

第1幕、第1幕

var Ajax, Ford; Ford = 0;

変数をステージに取り込み、彼の値が0になることをAjax伝えFordます。

第1幕、シーンII

if (Ford > 2*1+1) goto Scene V; Ford = Ford + 1;

OK、保存されている値Fordが3より大きい場合、プログラムはシーンVにジャンプします。それ以外の場合は、値が増分されます。

第1幕、シーンIII

Ford = 2*2*2*2*2*2*1+2*2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*1-1; print((char) Ford); Ford = Ford+2*2*2*2*1-1; print((char) Ford); print((char) Ford); Ford = Ford+2*2*2*1+1; print((char) Ford); Ford = 2*2*2*2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*2*1+2*2*2*1+(-1); print((char) Ford); Ford = Ford+2*2*2*1+1; print((char) Ford); Ford = Ford+2*1; print((char) Ford); Ford = Ford+2*2*2*(-1)+2*2*(-1); print((char) Ford); Ford = Ford+2*2*(-1); print((char) Ford); Ford = Ford+2*(-1)+(-1); print((char) Ford); Ford = Ford+2*2*2*2*1+2*2*2*1; print((char) Ford); if (Ajax == 2*1) goto Scene IV; Ford = 2*2*2*2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*2*2*1+2*2*2*2*2*1+2*(-1); print((char) Ford); Ford = Ford+2*2*(-1)+(-1); print((char) Ford); Ford = 2*2*2*2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*2*2*1+2*2*2*(-1)+1; print((char) Ford); Ford = Ford+2*2*2*2*1+2*2*2*1+2*(-1); print((char) Ford); Ford = Ford+2*2*2*1+2*-1; print((char) Ford); goto Scene II;

ラインの負荷および負荷。アイデアは、に格納されている値をいじって、Ford算術演算のロードとロードを実行して、目的の文字のASCII番号を取得し、コンパイラーに数字を文字形式で出力するように指示することです。それがあなたの書く方法ですHappy Birthdayifこのシーンの内部には、これが曲の3番目のフレーズであるかどうかを確認するという考え方があります。そうである場合、シーンIVにジャンプします。それ以外の場合は、書き込みを続行しますto You。その後、シーンIIに戻ります。

第1幕、場面IV

Ford = 2*2*2*2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*2*2*1+2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*2*1+1; print((char) Ford); Ford = Ford+2*2*(-1); print((char) Ford); Ford = Ford+2*2*2*2*1+1; print((char) Ford); Ford = 2*2*2*2*2*1; print((char) Ford); Ford = Ford+2*2*2*2*2*1+2*2*2*2*1+2*1+1; print((char) Ford); Ford = Ford+2*(-1)+(-1); print((char) Ford); Ford = Ford+2*2*(-1); print((char) Ford); goto Scene II;

これが機能する方法は上記のシーンに似ています:アイデアはを書くことDear SPLです。

第1幕、シーンV

End.

そのように。

残念ながら、これをテストできる場所はまだ見つかりませんでした...


のように言葉を繰り返すことができると思いますfat fat fat fat cat。また、github.com / drsam94 / Spl / blob / master / splc.pyを使用してsplコードをコンパイルします。
clamchowder314

16

ルビー、54バイト

「ちょっと、Rubyの答えはまだありません」と思ったのですが、それから数秒前に登場しました。しかたがない...

puts h="Happy Birthday to You",h,h[0,15]+"Dear Ruby",h

16

PHPが好きですか?61 59 58バイト

$s="
Happy Birthday";echo$t="$s to You","$t$s Dear PHP$t";

@ http://sandbox.onlinephpfunctions.com/で実際にご覧ください


1
その第一の出力で$トンへの割り当てを組み合わせる:$s="\nHappy Birthday";echo$t="$s to You","$t$s Dear PHP$t";
manatwork

@manatwork素晴らしい提案、ありがとう!
MonkeyZeus

58
いいえ。PHPは好きではありません。今まで。
偽名

短いタグで同じバイト数:<?=$t=($s="\nHappy Birthday")." to You","$t$s Dear PHP$t"?>
AmadeusDrZaius 14年

1
\n文字を保存するために、実際の改行に置き換えます。
クリストフ

15

私はただ一つの言語だけを決めることができません:/

BrainBack:68

4 ["Happy birthday ">2 ->![<0 "to You
"]<[<0 "Dear BrainBack
"]<1 -]

BrainBackは、BrainFuckとForthを組み合わせたもので、PCGチャレンジ用に作成されました2014年3月7日

拡張BrainFuck:79

{h|"Happy Birthday ">}{t|"to You
">}&h&t&h&t&h|"Dear Extended BrainFuck
">&h&t

EBFの誕生日は2010年7月16日です

スキーム:96

(R5RS、ラケット、R6RS REPL)

(map(lambda(e)(display"Happy Birthday ")(display(if e "to You\n" "Dear Scheme\n")))'(1 1 #f 1))

スキームは1975年12月に生まれました(NB:PDF)

ゾゾテス:96

((:'R(\(l)(p'|Happy birthday |())(p(?(a l)'|to You|'|Dear Zozotez|))(?(d l)(R(d l)))))'(t t()t))

ただし、フランス語(86)でこれを行う方が適切だと感じています。

((:'A(\(l)(p'|Joyeux anniversaire|())(p(a l))(?(d l)(A(d l)))))'(, , | Zozotez,| |.|))

出力:

Joyeux anniversaire,
Joyeux anniversaire,
Joyeux anniversaire Zozotez,
Joyeux anniversaire.

ゾゾテスの誕生日は2011年7月19日です


4
ここでおそらく最も面倒な言語名である「Happy birthday dear Extended Brainfuck」の+1。それでも、プログラムは親言語の同等のサイズのほんの一部です。そして、実際にフランス語でより良く聞こえるゾゾテスにとっては、一般的に私はフランスがこの歌の同一の行に人の名前を絞る方法があまり好きではありません。
レベルリバーセント

あなたのゾゾテスの答えでは、そうであるはずですJoyeux anniversaire à Zozotez
ベータ崩壊14年

2
@BetaDecay私(フランス)の妻によると、そのような前置詞はないはずです。フランスのウィキペディアは同意します。
シルウェスター14年

14

デッドフィッシュ(2610 2391文字)

これは何ですか?出力のみの挑戦?Deadfishの仕事のようです

iiisdsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddsdddddodddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiioiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddsdddddodddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiioiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiiiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddoiiiiiiiiiiiiiiiiioddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiiiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddoiiioiioiiioiiiiiiiiiiodddddddddddoddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddsdddddodddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiioiiiiiio

残念ながら、Deadfishは整数のみを出力するため、上記のコードは曲の各キャラクターのASCII表現を出力します。

仕様を使用する場合

エラーは認識されません。シェルは改行文字を追加するだけです!

次に、これを2391文字までゴルフできます。

iiisdsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddsdddddodddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiioiiiiiiofdddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddsdddddodddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiioiiiiiiofdddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiiiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddoiiiiiiiiiiiiiiiiioddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiiiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddoiiioiioiiioiiiiiiiiiiodddddddddddofddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiiiiooiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddsiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiioiioddddddddddddoddddodddoiiiiiiiiiiiiiiiiiiiiiiiiodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddsdddddodddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddsiiiiiiiioiiiiiiiiiiiiiiiiiiiiiioiiiiiio 

注:Deadfishは実際には私のお気に入りの言語ではありません、:Pに抵抗できませんでした。また、デッドフィッシュでのゴルフは楽しいパズルです。


19
「fun」の特定の値の場合。
チャールズウッド14年

13

JS、83バイト

h="Happy Birthday to You\n",console.log(h,h,h.replace("to You\n","Dear")+" JS\n",h)

または@IngoBürkによる79バイト

h="Happy Birthday ",t="to You\n",console.log(h+t,h+t,h+"Dear Javascript\n",h+t)

または@kapepによる71バイト

console.log(a=(b="Happy Birthday ")+"to You\n",a,b+"Dear Javascript\n",a)

または、このページのコンソールで実行します(42バイト)

eval($("#answer-39759 code:first").text())

4
また、これは短いです:h='Happy Birthday ',t='to You\n';console.log(h+t,h+t,h+'Dear Javascript\n',h+t)(あなたはまだ使用することができprompt、さらに節約するために)
インゴ・バーク

11
最後のコード部分のLOL ..:D
オプティマイザー

1
76:t='to you\n';console.log(h='Happy birthday',t+h,t+h,'dear JavaScript\n'+h,t)
NinjaBearMonkey

1
71:console.log(a=(b="Happy Birthday ")+"to You\n",a,b+"Dear Javascript\n",a)
kapex

3
console.logの代わりにアラート、2つのブラケットが必要ですが短い:alert((t=(h="Happy Birthday ")+'to You\n')+t+h+'dear EcmaScript\n'+t)69
edc65

11

R:70バイト

pasteベクターリサイクルを活用します。

writeLines(paste(rep("Happy Birthday",4),c(rep("to You",2),"Dear R")))

cat(paste(rep("Happy Birthday",4),c(rep("to You",2),"Dear R"),'\n'))
germcd 14年

@germcd cat文字列間にスペースが追加されるため、これはまったく機能しません。そのため、最初の行を除く各行の先頭にスペースができます。
bdzimmer

write(x,"")-> write(paste(rep("Happy Birthday",4),c(rep("to You",2),"Dear R")),"")68バイト。73 p=paste;write(c(i<-p(h<-"Happy Birthday","to You"),i,p(h,"Dear R"),i),"")ベクトルリサイクルを使用した元のソリューションが再び私を打ち負かします。
Vlo

66バイトに縮小`~`=rep;write(paste("Happy Birthday"~4,c("to You"~2,"Dear R")),"") tio.run/##K/r/...
ニック・ケネディ

11

T-SQL、89 87バイト

編集:おそらくこれらの古いことをdrすべきではありませんが、数バイトを回収するためにこれに明らかな変更があることに気付きました。

STUFFを使用して文字列の不要な部分を削除すると、開始インデックスはFROM、3倍した句の値によって提供されます

SELECT STUFF('Happy Birthday to You  Dear SQL',N,8,'')FROM(VALUES(24),(24),(15),(24))S(N)

これはいいね!
TLama 14年

これは素晴らしいSQLソリューションであり、非常に素晴らしいトリックです!
BradC


9

Perl-58

say"Happy Birthday ".($_?"Dear Perl":"To You")for(0,0,1,0)

で実行:

perl -E'say"Happy Birthday ".($_?"Dear Perl":"To You")for(0,0,1,0)'

楽しみのためだけに:

perl -E'for(<HappyBirthday{0,1,2,3}>){s/B/ B/;s/2/ Dear Perl\n/;print s/\d/ To You\n/r}'

6
どうsay"Happy Birthday $_"for("to You","Dear Perl")[0,0,1,0]
core1024

@ core1024配列でそれができるとは知りませんでした。あなた自身の答えとして投稿してください!
hmatt1 14年

8

Python 507バイト

「」を印刷
H ap py- Bir th day -to-Y ou = Happy-B irt hday
-to-Y ou = H appy-誕生日-D e
ar-P ython = Ha ppy-Bir t hda y -to- Y o uHapp y-
B irthday-to-Y ou = H app
y-誕生日-to-Y ou = H a ppy-誕生日
"" ".replace(" \ n "、" ")。replace(" "、" ")。replace("-"、" ").replace(" = "、" \ n ")[:92]

賞品を獲得していません...しかし、注意深く見ると、ASCIIアートがあります:

###### ######## ##### ### ##############
#######################
#### ##### ### #########################
###################
########## #################

これは深刻な候補ではありません。
エソランジングフルーツ

3
@ Challenger5はい、「しかし、私はまた、他の機知に富んだ提出物にアップ投票で報います(そして、私も皆にそうすることをお勧めします)。 」
アレックス

7

PowerShell- 69 64 59

1,1,0,1|%{"Happy Birthday "+("Dear $ShellId","To You")[$_]}

91

$a,$b,$c="Happy Birthday.To You.Dear PowerShell".Split(".");1..2|%{"$a $b"};"$a $c";"$a $b"

および108

$a=@();$b,$c="To You.Dear PowerShell".Split(".");1..4|%{$a+="Happy Birthday $b"};$a[2]=$a[2]-replace$b,$c;$a

6

ルビー、56

x="Happy Birthday To You
"*4
x[59,6]="Dear Ruby"
puts x

インライン化できませんか?
オプティマイザー

2
で終わるメソッド=は、等号の後に常に式の結果を返します。これをインライン化すると、印刷されるだけです"Dear Ruby"String#[]=メソッドです)。
英国茶

1
>文字列の改行。OK
sagiksp

6

マーベラス、151

プリントHappy Birthday毎にhbどちらかと呼ばれ、to youまたはDear Marbelous入力されたか否かに基づいて、付加、0または1。渡された大理石hbは、シンクロナイザーでスタックするため、出力されません&0

03
00
02
01
hb
:hb
}0
=0&0
&1
&2//
746F20596F7544656172204D617262656C6F75730A
&0&0&0&0&0&0&1&1&1&1&1&1&1&1&1&1&1&1&1&1&2
486170707920426972746864617920

以下は、hb16進数がASCIIテキストに変換されたボードです。 ここに画像の説明を入力してください


5

CJam、46バイト

4,{"Happy Birthday "\2="Dear CJam""to You"?N}%

ここで試してみてください。

4,                                             "Push [0,1,2,3].";
  {                                         }% "Map...";
   "Happy Birthday "                           "Push the string.";
                    \                          "Swap top two stack elements (string and
                                                array element)";
                     2=                        "Check equality with 2.";
                       "Dear CJam""to You"     "Push two more strings.";
                                          ?    "Select string based on result of 2=.";
                                           N   "Push a line break";

これにより、スタックに次の配列が残ります。

["Happy Birthday " "to You" "\n" "Happy Birthday " "to You" "\n" "Happy Birthday " "Dear CJam" "\n" "Happy Birthday " "to You" "\n"]

そのコンテンツは、プログラムの最後に自動的に連続して印刷されます。

または、forループと同じ文字カウントで:

4{"Happy Birthday "I2="Dear CJam""to You"?N}fI

5
うそつき!!お気に入りの言語はRuby / Mathematica:P
オプティマイザー

1
@Optimizer確かにRubyではなく、おそらくMathematicaかもしれませんが、それについても確信がありません。「実際の」プログラミングでは、おそらくC / C ++ / C#を常に選択するでしょう。(あなたもJS:Pであることも確信しています。)
マーティンエンダー

5
あなたは私を得た:P:D
オプティマイザ

5

ハスケル:75

h="Happy Birthday "
y=h++"to You"
main=mapM_ print[y,y,h++"Dear Haskell",y]

ideoneでのコード出力

Haskellワンライナー:79

mapM_ print["Happy Birthday "++if x==3then"Dear Haskell"else"to You"|x<-[1..4]]

ここでオンラインで1つのライナーを試すことができます:http : //tryhaskell.org/


1
1つのキャラクターを剃る1つのライナー:mapM_(print.("Happy Birthday "++))["to You","to You","dear Haskell","to You"]
アレックスReinking 14年

リストの内包表記はすごいloooonnnnggggg
アレックス

2
また、技術的putStrLnには仕様に準拠する必要があります(と二重引用符を取得しますprint
Alex Reinking 14年

2
_mainの戻り値は
破棄さ

5

Var'aQ-121

"Happy Birthday " ~ a cher "to you\n" tlheghrar ~ b cher b tlheghrar a "dear Var'aQ" tlheghrar tlheghrar b tlheghrar cha'

1
カプラ!すべての言語のVar'aQを使用するための+1!
WallyWest

5

GolfScript:54文字

4,{"Happy Birthday "["To You""Dear GolfScript"]@2==n}%

サンプル実行:

bash-4.3$ golfscript.rb <<< '4,{"Happy Birthday "["To You""Dear GolfScript"]@2==n}%'
Happy Birthday To You
Happy Birthday To You
Happy Birthday Dear GolfScript
Happy Birthday To You

気がついた。(そのGolfScriptコードを約5〜6時間記述しようとすることによる小さな副作用。)ありがとう、@MartinBüttner。
マナトワーク14年

1
ハッピーバースデーDear CodeGolf
デニス

Grr。私はそれを書いたときだけでなく、それを修正したときも疲れました。ありがとう@デニス。
マナトワーク

5

T-SQL(MS準拠):75

print stuff(replicate('Happy Birthday to You '+char(10),4),62,6,'Dear SQL')

素敵なもの...私はそれについて考えていたのに:)
MickyT 14年

いい案!+char(10)引用符内の改行で置き換えることにより、さらに9バイトを節約し、文字列の戻り部分を作成します。
-BradC

5

C#(75)(73)

System.Diagnosticsの目的で使用するDebug.Print

@Abbas 'コードへのアップグレード

string x="\nHappy Birthday ",y=x+"to You";Debug.Print(y+y+x+"Dear C#"+y);

@Tyress'コードへのアップグレード(83)(76)

for(int i=0;i++<4;)Debug.Print("Happy Birthday "+(i!=3?"to You":"Dear C#"));

出力:

Happy Birthday To You
Happy Birthday To You
Happy Birthday Dear C#
Happy Birthday To You

2
String.Formatおよび三項演算子を使用して、数文字を保存できます。また、これをC#プログラムのように見せずにi++<3; p
FryAmTheEggman 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.