コミュニケーションが容易になるということは、コーディングが速くなることを意味します。


28

5年前のこの日に亡くなった父は、 APLに優れていて、APLのすべての基礎(およびその他)を教えてくれました。50年のAPLに備えて、手書きのロゴに関するこの特許レター(デンマーク語を読まない人の便宜のために翻訳された)を見つけました。これは、APLが大規模なユーザーベースを獲得できない主な理由を説明しています。この理由は、もちろんこのコミュニティの素晴らしいゴルフ言語すべてにも当てはまります。


3497/77必須 29 回目の 1977年8月に13

より簡単な通信はより速いコーディング手段がより少ない符号器手段を意味する…

Henri Brudzewsky、エンジニアリングコンサルタント会社、Minddevej 28、Søborg、

コンピュータ、特にAPLコード化されたコンピュータを含むクラス9
クラス42:特にAPLコード化されたコンピュータの使用中のITサービス代理店会社。


仕事

EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS 改行なしでテキストの無限に繰り返される出力を生成します。EASIERまたはFASTERまたはでテキストを開始できますFEWER


私はあなたの挑戦を誤って解釈し、私がしたことはi.imgur.com/qKnTj3q.pngでした
sergiol

@sergiol ここでほぼ有効です。
アダム

特許レターへのリンクは無効です。
pppery

@ppperyありがとう。更新しました。
アダム

回答:


14

05AB1E、25バイト

[‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘?

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

説明:

[‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘?
[                         Start infinite loop
 ‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘   Push the compressed string in uppercase, starting from FEWER, with a trailing space
                        ?  Print without trailing newline

13
正直なところ、私はPythonソリューションが説明を得る理由を理解していませんが、これは説明しません。ここで何が起こっていますか?
-nluigi

3
@nluigiブラックマジック
ニックロバートソン

2
言語がわからない場合、ここで何が起こっているかを知ることは物理的に不可能です。説明をお願いします。
ジョージウィルコックス

1
@nluigi [は「無限ループの開始」を意味し、‘æƒËRSˆ¾¥ƒŽÁˆ¾¡ŸÂ ‘はの圧縮バージョンでありEASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS ?改行なしで印刷することを意味します。
Okx

1
@レオそれは大きく説明されていません。まず、このファイルに移動します。一部の拡張文字の右側には、数字が表示されます。1桁の場合は、先行ゼロを埋め込みます。このような2つの文字は、先行ゼロが可能な4桁の数字を形成します。次いで、この数は、ゼロベースのインデックスとして使用され、この辞書。各単語の動作は引用符に依存します。引用符は、を検索してリンクした最初のファイルで見つけることができますcompressed
エリックアウトゴルファー

41

SVG(HTML5)、336バイト

<svg width=500 height=500><defs><path id=p d=M49,250a201,201,0,0,1,402,0a201,201,0,0,1,-402,0></defs><text font-size="32"><textPath xlink:href=#p>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS</textPath><animateTransform attributeName=transform type=rotate from=360,250,250 to=0,250,250 dur=9s repeatCount=indefinite>

編集:一部の人々は、フォントがそれらに十分に適合しないことを発見したので、ここでは、数ピクセルの調整を可能にするバージョンがあります:

<p><input type=number value=0 min=0 max=9 oninput=p.setAttribute('d','M250,250m20_,0a20_,20_,0,1,1,-20_,-20_a20_,20_,0,1,1,-20_,20_a20_,20_,0,1,1,20_,20_a20_,20_,0,1,1,20_,-20_'.replace(/_/g,this.value))></p>
<svg width=500 height=500><defs><path id=p d=M250,250m200,0a200,200,0,1,1,-200,-200a200,200,0,1,1,-200,200a200,200,0,1,1,200,200a200,200,0,1,1,200,-200></defs><text font-size="32"><textPath xlink:href=#p>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS</textPath><animateTransform attributeName=transform type=rotate from=360,250,250 to=0,250,250 dur=9s repeatCount=indefinite>


これは美しいですが、裏返しにして(円の外側を向いている文字の上部)、すべて大文字にすることはできますか?
アダム

@Adámこれはどうですか?寸法を微調整する必要がありましたが、同じバイトカウントです。
ニール

1
@Adám、あなたがすべきです; それは私が最初にそれを読んだときにこの挑戦がそうなると思っていたものです。
シャギー

8
他の単語の間にある「MEANSEASIER」にはスペースがありません。
シュリーバツァー

1
@ShreevatsaR 2番目のバージョンを追加しました。これには、微調整を行うためのテキストボックスが含まれています。
ニール

13

PHP、76バイト

for(;;)echo strtr(EASI0MMUNICATION1FAST0DING1FEW0DERS1,["ER CO"," MEANS "]);

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


4
PHPのみ
...-user253751

@immibisどういう意味ですか?
ヨルグヒュルサーマン

つまり、1行のコードで少なくとも3つのPHPの「設計上の癖」を実証できたということです。このコード行は、PHPが有害であると見なされる理由を示しています。
user253751

1
@immibis「mimimiはphpが好きではありません」私たちは10年ほどそのポイントを過ぎていたと思っていました。:-)
Zsolt Szilagy

4
@ Arc676まず、ドル記号のない名前は定数と見なされます。次に、未定義の定数はそれ自体が文字列であると想定されます。したがって、このコードでEASI0MMUNICATION1FAST0DING1FEW0DERS1は文字列として扱われます"EASI0MMUNICATION1FAST0DING1FEW0DERS1"。第三にstrtr、連想配列(他の言語では「マップ」または「辞書」)が必要ですが、このコードは通常の配列で渡されるため、通常の配列をキー0および1の連想配列として扱います。そして1は文字列として扱われます"0"、そして"1"あなたが推測したので、関数は文字列を必要とします。
ウェーブモード

11

Vim 69バイト

qqAFEWER CODERS MEANS EASIER COMMUNICATION M<C-n> FASTER CODING M<C-n> <esc>@qq@q

単純なVimコマンドシーケンスが適切なコードのゴルフソリューションを作成するとき、私はそれが大好きです。:-D
DevSolar

7

HTML、122バイト。

申し訳ありませんが、自分自身を助けることはできません。

<marquee style="width:5em;word-spacing:5em;">EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS </marquee>


なぜ単語間隔が大きいのですか?
アダム

@Adámマーキーは常に反復間でその幅(つまり、独自の幅)を残すためです。そして、私はそれを崩壊させる方法を見つけることができなかったので、即興で各単語の間に同じ量のスペースを置く必要がありました。
ミスターリスター

終了タグを削除できませんか?
-NoOneIsHere

@NoOneIsHereどのように役立ちますか?それとも、10バイトずつゴルフをするという意味ですか?私はそれをやりたいとは思いません。終了タグは実際にはオプションではありません。
ミスターリスター

@MrListerゴルフをするつもりだった。単一タグのHTMLドキュメントには終了タグは必要ないと思いました。
-NoOneIsHere

6

パイソン282の 81バイト

Leaky Nunのおかげで-1バイト。

私はおそらく何か間違ったことをしているが、本当に遅いので、まあ。末尾のコンマに注意してください。

while 1:print'FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS',

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

別のソリューション、85バイト

これをもっとゴルフできるでしょう。

while 1:print'%sER CO%s MEANS'*3%('FEW','DERS',' EASI','MMUNICATION',' FAST','DING'),

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


1
2番目のスペースを削除できます。
リーキー修道女

@LeakyNunどうしてそれを見逃したの?o0ありがとう!
完全に人間の

2番目の方法では、スペースをフォーマット文字列に移動できます。
-wizzwizz4

@ wizzwizz4先頭の空白は許可されません。
完全に人間の

2
@totallyhuman現在、 "FEWER CODERS MEANSEASIER COMMUNICATION MEANSFASTER CODING MEANSFEWER ..."を出力するバグがあります。書式文字列をに変更'%sER CO%s MEANS 'し、書式項目からスペースを削除すると、ゴルファーになり、適切に機能します。
-wizzwizz4



4

HTML / CSS(Firefoxの場合のみ)、179の 177 183 176 173バイト

<b id=a>EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS </b>E<a><style>*{margin:0;}a{position:fixed;left:0;right:0;height:1em;background:-moz-element(#a)}

確かに最低スコアに近いところはないので、JSが関与していなくても、HTML / CSSで無限の繰り返しを得るのは楽しいと思っただけです。

変更ログ:

  • id属性を囲む引用符を削除しました
  • 正しくラップするようにテキストを引き伸ばすために「ラウンド」背景リピートを追加
  • 単一行出力に変更
  • width:100%スタイルをright:03バイト節約するために置き換えます

良い試みですが、それはすべての行で始まります。OP:改行なし。
アダム

端末に出力される回答は、行の最後で折り返されます。ズームアウトしてみてください。水平方向にも永遠に続くことがわかります。ブラウザウィンドウに「隠れている」だけです。
user371366

また、私が役に立てば幸い、それはもっと説得力のあるラップそうすることを繰り返し、画像「四捨五入」を有するいくつかのバイトを無駄に
user371366

ラッピングは問題ありませんが、あなたのものは違います。それは無限に多くの無限の線を「印刷」するものと見ることができます。背景を1行に制限するだけです。
アダム

1
はい。repeat no-repeatまたはを配置する必要があると思い; background-repeat: repeat-xましたが、それを回避する方法を見つけました。仕様に従うとバイトが節約できることがわかりました!
-user371366

3

Python 3、87バイト

while 1:print(end="FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ")

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


何をend=するの?
アダム

@Adám末尾の改行なしで印刷できます。
エリックアウトゴルファー

3
@Adámへのデフォルト引数printprint("",end="\n")です。
リーキー修道女

置換ER COおよびMEANS(先頭+末尾のスペース)を使用すると数バイト節約できると考えましたが、明らかにそうではありません。
エリックアウトゴルファー


3

LOLCODE、116バイト

HAI 1
IM IN YR O
VISIBLE "FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "!
IM OUTTA YR O
KTHXBYE

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


私はLOLCODEに精通していません。これはどのように永遠に出力しますか?
エソランジングフルーツ

@ Challenger5 IM IN YR ...IM OUTTA YR ...無限ループを形成します。
リーキー修道女

1
HAIとKTHXBYEは、コンパイラーが必要としないため削除できます。また、VISIBLEの終わりに感嘆符はありません。
OldBunny2800

@ OldBunny2800どのバージョンのLOLCODEを使用していますか?では、このバージョンで、末尾には、!印刷後にキャリッジリターンを抑制することができます。
Arc676

ああ、改行なしのルールを忘れました。LOLCODEにこれを実現する方法があるとは知りませんでした!
OldBunny2800

3

ルビー、77バイト

" MEANS "変数に割り当てると、1バイトすべて保存されました:-)

loop{$><<"EASIER COMMUNICATION#{m=" MEANS "}FASTER CODING#{m}FEWER CODERS"+m}

3

JavaScript(ES6)、90 87バイト

while(1)console.log`EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS `

機能する代替、100バイト

ここでの「機能」とは、「ブラウザをクラッシュさせない」ことを意味します(少なくともしばらくの間)。

setInterval(_=>console.log`EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS `,1)

1
あなたのコードは動作しません:document.write`EASIER COMMUNICATION${m=" MEANS "}FASTER CODING${m}FEWER CODERS`+mに相当しdocument.write([ 'EASIER COMMUNICATION', 'FASTER CODING', 'FEWER CODERS' ], ' MEANS ', ' MEANS ') + ' MEANS '、文字列とCONCATENATE(印刷にすべての引数を変換しますどの1)、EASIER COMMUNICATION,FASTER CODING,FEWER CODERS MEANS MEANS 最後には含まれません))、および2 ' MEANS 'それは...関数呼び出しの外なので、とにかく
Frxstrem


2

オクターブ、86バイト

while fprintf('FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ')end

説明:

これはかなり自明です。ここで唯一の本当の「トリック」はを使用することwhile fprintfです。ときにfprintf戻り引数が与えられ、それが印刷された文字の数を返し、すべての非ゼロの数字が考慮されtrueたループ条件が常に真となりますので、オクターブに。


私は必死に、より興味深いアプローチを短くしようとしましたが、残念ながら9バイト長くなりました:

while fprintf('FEW%sDERS%sEASI%sMMUNICATION%sFAST%sDING%s',{'ER CO',' MEANS '}{'ababab'-96})end

これは、文字列を挿入しようとする'ER CO'' MEANS'、直接インデックス使用して、正しい位置に文字列に'ababab'-96の短いバージョンです[1 2 1 2 1 2]

これは少し短かった(93バイト)が、ナイーブアプローチよりはまだ長かった

while fprintf('FEWER CODERS%sEASIER COMMUNICATION%sFASTER CODING%s',{' MEANS '}{[1,1,1]})end

Level River Stのアプローチを使用したもう1つ(89バイト):

while fprintf(['FEWER CODERS',s=' MEANS ','EASIER COMMUNIDATION',s,'FASTER CODING',s])end

これは理論的には元のソリューションよりも1バイト少ないバイトで機能するはずですが、何らかの奇妙な理由で失敗します。

while fprintf"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "
end

これは、fprintf('abc def')と同等のバグのある機能を使用しfprintf"abc def"ます。end次の行になければなりませんが、それはまだ2つの括弧はスキップされますので、1バイト短いです。

そして87のためにもう一つ:

while fprintf('FEWER CODERS%sEASIER COMMUNICATION%sFASTER CODING%s',k=' MEANS ',k,k)end

まあ、私はしようとしなかったと言ってはいけません:)


fprintf引数をリサイクルすることを知っていますか?あなたの最後のバージョンは6バイト少なくすることができます、オンライン
12:52のSanchises

2

アリス、70バイト

" SNAEM "k"SREDOC REWEF"e0j"GNIDOC RETSAF"e0j"NOITACINUMMOC REISAE"d&o

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

説明

残念ながら、MEANS(スペースを含む)を再利用すると、一度に全部を印刷するよりも1バイトしか節約できません。したがって、を抽出するER COと実際には1バイトかかります(別のセクションを抽出するのに少し費用がかかるため、おそらくそれ以上になります)。

" SNAEM "                Push the code points of " MEANS " in reverse.
k                        If there is a return address on the return address stack (which
                         there isn't right now), pop it and jump there.
"SREDOC REWEF"           Push the code points of "FEWER CODERS" in reverse.
e0j                      Jump to the beginning of the line, pushing the location of the
                         j to the return address stack. Hence, we push the code points
                         of " MEANS " again, but then the k pops the return address and
                         jumps back here.
"GNIDOC RETSAF"          Push the code points of "FASTER CODING" in reverse.
e0j                      Jump to the beginning of the line again.
"NOITACINUMMOC REISAE"   Push the code points of "EASIER COMMUNICATION" in reverse.
d                        Push the stack depth.
&o                       Print that many bytes from the top of the stack.
                         Afterwards the IP wraps around to the first column and the
                         program starts over.

2

C#、102バイト

_=>{for(;;)System.Console.Write("EASIER COMMUNICATION{0}FASTER CODING{0}FEWER CODERS{0}"," MEANS ");};



1

Java(OpenJDK 9)、114バイト

static void f(){while(1>0)System.out.print("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ");}

オンラインでお試しください!停止するタイミングがわからないため、数秒後に実行を停止します。


提出は完全なプログラムまたは機能でなければなりません。
KritixiのLithos

@KritixiLithos匿名のラムダにすることはできますか?
完全に人間の

@totallyhumanはい。許可されている他の言語で。Java 例外である理由はわかりません。
wizzwizz4

実行を停止する理由 出力キャッシュを無効にするだけです。
アダム

3
しかし、あなたはできるfor(;;)
ブライアンマックラッチン

1

C、86バイト

f(){printf("FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS ");f();}

オンラインでご覧ください。


これは、末尾呼び出しの最適化を行うコンパイラーに依存しますが、ほとんどの場合はそうするでしょう。
ウェインコンラッド

@WayneConradそれはその最適化なしで有効な答えです。無限再帰を満たすには、要件:プロデュースは無限に出力を繰り返す
2501

末尾呼び出しの最適化を行わないと、スタックは最終的にオーバーフローします。gcc(デフォルトのオプションを使用し、末尾呼び出しの最適化を使用しない)でコンパイルしてみてください。実行すると、プロセスを高速化するために/ dev / nullに出力がリダイレクトされます。それはセグ障害です。テールコールの最適化を有効にする「-O2」オプションを使用すると、意図したとおりに永久に実行されます。
ウェインコンラッド

@WayneConrad無限再帰は概念的には無限です。質問は、無限の実用的な定義に制約されません。一般的なコンセンサスにより、無限再帰は無限に繰り返されます。つまり、プログラム内のロジックはそれを停止しません
。– 2501

ソリューションが無効であることを宣言していません。私が指摘したいのは、適切に実行するために、コンパイラーから少し協力する必要があるということだけです。
ウェインコンラッド



1

MATL、68バイト

`'EASIER COMMUNICATION*FASTER CODING*FEWER CODERS*'42' MEANS 'Zt&YDT

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

説明

`                                                     % Do...while
  'EASIER COMMUNICATION*FASTER CODING*FEWER CODERS*'  %   Push this string
  42                                                  %   Push 42 (ASCII for '*')
  ' MEANS '                                           %   Push this string  
  Zt                                                  %   String replacement
  &YD                                                 %   printf to STDOUT
  T                                                   %   Push true as loop condition
                                                      % End (implicit)

1

公理、92 89バイト

repeat fortranLiteral"EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS "

Axiomウィンドウに1行挿入します。「fortranLiteral」より短い関数が1つあり、「\ n」を書き込まない可能性があります


1

Braingolf、78バイト

"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "[!@66<1+>]

または

Braingolf、77バイト[非競合]

"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "[!&@<1+>]

貪欲な修飾子(&)とchar印刷演算子(@)の使用に関する2つのバグを修正しなければならなかったため、これは競合しません。


1

空白、267バイト

[70][69][87][69][82][32][67][79][68][69][82][83][32][77][69][65][78][83][32][69][65][83][73][69][82][32][67][79][77][77][85][78][73][67][65][84][73][79][78][32][77][69][65][78][83][32][70][65][83][84][69][82][32][67][79][68][73][78][71][32][77][69][65][78][83][32]{p}

FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANSスタックにプッシュしてから印刷します。いいえとして終了しない{@}

また面白い事実として、次のBraingolfスクリプトを使用してこのコードを生成しました

"FEWER CODERS MEANS EASIER COMMUNICATION MEANS FASTER CODING MEANS "l>[<$_<91+2^9-@_ 91+2^7-@l>]"{p}"@3

1

Groovy 79バイト

m=" MEANS";for(;;)print"EASIER COMMUNICATION$m FASTER CODING$m FEWER CODERS$m "

groovyの文字列補間を使用します。


1

PowerShell100 97バイト

for(){"EASIER COMMUNICATION","FASTER CODING","FEWER CODERS"|%{Write-Host -NoNewLine "$_ MEANS "}}

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


古い回答:

PowerShell、100バイト

while(1){"EASIER COMMUNICATION","FASTER CODING","FEWER CODERS"|%{Write-Host -NoNewLine "$_ MEANS "}}

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

PowerShellは、コンソールに出力する最も威厳のある方法でも新しい行が挿入されるため、これには少し注意が必要です。 Write-Hostこのために必要です。ただし、パイプライン処理がコーディングフットプリントを短縮する方法を示しています。

実行は無限ループであるため戻らないため、しばらくしてから実行を停止する必要があります。

編集:whileループをループに変更して、3バイトを削り落としましたfor

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