Parrotプログラムを作成する


15

入力が与えられると、その入力の後に改行が際限なく続きます。

入力は、印刷可能なASCII文字(0x20-0x7E)と改行(0x0A)のみで構成される文字列になります。

入力の長さが0の場合、改行を無限に出力します。

これはので、各言語で最も少ないバイトです勝ちます!




@VoteToClose私前にこれに答えたこと知っていた ..
L3viathan

マイクロソフト、1 Steve Ballmer開発者、開発者、開発者、開発者、...
sergiol

回答:


13

いまいましい、10分遅れ!しかし、これは改行を改行として印刷しません。
phil294

申し訳ありませんが、yes-newlinesを意味するわけではありませんが、入力に含まれる可能性のある改行は代わりにとして出力され\nます。質問の読み方に依存します:D
phil294

@ブラウハーンああ私はこの部分を誤解しました:/。これを./script $'Hello\n World'実際の改行を含めるように呼び出す必要があります。TIOでは、コマンドライン引数に改行を追加できます
-ovs

1
引用は必要ですか?yes $1私のためにうまく動作します
-DrnglVrgs

2
@DrnglVrgsこれは空の入力のために私のために動作しません
OVS

9

なんでやらないの[I,
FrodCube

@FrodCube:残念ながら、空の入力では機能しません:(
Emigna

@FrodCube:実際には、質問は空の入力ではなく長さ0の入力を示しているので、これを減らすことができます:)
Emigna

1
@FrodCube:ええ、実際には05AB1Eのかなり新しい機能です。Ohmも最終的には入手できると確信しています。
エミグナ

10
[=また、動作し、スマイリーの顔です。笑顔が唯一のメリットです笑。
魔法のタコUr


5

オーム、3バイト

∞┼,

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

Ohmは他の言語に比べて入力処理が苦手なので、空の入力では機能しませんが、「」を入力できます。

説明

∞     Infinite loop next code (until ";" or end of line)
 ┼    Get first input
  ,   Println

D:このルックスは、あなたがそれを説明してもらえ...クール
ベータ崩壊

@BetaDecayできました!
FrodCube

1
参考までに、Ohm v2(できれば近日公開予定)では、以前よりもはるかに優れた入力処理が行われます!
ニッククリフォード

@NickCliffordかっこいい!私はそれを楽しみにしています!私はあなたの言語が好きです
-FrodCube

1
Oooo ... Ohmは05AB1Eのようにコマンドが異なりますか?!熱心にGitHubページの読み取りを開始
魔法のタコ

5

sed、5

:      # label (unnamed) 
p      # print the pattern space
b      # branch back to the label

名前のないラベルは、バージョン4.2.2で動作するsedの文書化されていない「機能」ですが、将来のバージョンでは動作しない可能性があります。





4

V、2バイト

òÙ

明らかな理由でこれをオンラインで試すことはできません。

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIOは実際には60秒間実行され、終了ポイントが最初の128KiBに切り捨てられるまで終了し、STDOUTを出力します。
魔法のタコUr

1
V、それが終了するまでnvimセッションの内部出力、それは、とSTDOUTに印刷されませんので、TIOはセッションを殺すとSTDOUTに何も見ません。私はあなたが言ったことを知りませんでしたが、残念ながらそれはVを修正しません
nmjcman101

1
Ahhhh ...残念なことに、Vのプロパティを忘れてしまったのですが、使用に失敗したのは一度だけです。
魔法のタコUr


3

AutoHotkey、20バイト

OPは、出力がどのように発生するかを指定せず、その後の改行で無限に発生する必要があると述べました。AHKはcmdの相互作用に合わせて調整されていません。したがって、出力ToolTipはマウス位置で繰り返し発生します。

tooltip

loop
tooltip,%1%`n`n

AHKのloop機能が気に入っています。loop次のブロックを永久にloop, 10繰り返し、10回繰り返します。Pythonのような他の言語ではこの機能を見逃すことがあります。

AutoHotkeyのエスケープ文字は`(Windowsパスのバックスラッシュに問題はありません)です。何らかの理由で、末尾の改行は無視されるため、2回必要です。(trayTipこの「バグ」はないかもしれませんが、ワインで実行しているためテストできません)

古い答え:

loop
msgbox,%1%

OPがこのソリューションを好まない可能性が高いことに気付きました。出力はユーザーインタラクションで行われ、改行は含まれません。別の方法を探します。


1
さて、あなたは創造的な解決のための私のupvoteを持っている
Skidsdev

3

LibreLogo、33バイト

コード:

x=input " repeat [ label x bk 9 ]

説明:

x = input "               ; Input Stored in x as String
repeat [                  ; Endless Loop
    label x               ; Print x in Current Position
    bk 9                  ; Move Back 9 pt
]

結果:

enter image description here


2

Python 2、25バイト

s=input()
while 1:print s

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

入力は、Pythonリテラル(文字列の引用符、角括弧、またはリスト/タプルのコンマ区切りアイテムの括弧など)であることが期待されます。

Python 3はprint関数であるため+1バイトになりますが、raw_input()Python 2の4バイトのペナルティなしで生の入力を行うこともできます。






2

C、24バイト

f(char*s){puts(s),f(s);}

基本的に、自分自身を再度呼び出す前に文字列を出力する再帰関数。codegolfでの2回目の投稿なので、どうぞよろしくお願いします:p


2

Cubix、6バイト

AN/qvo

ここでテストしてください

  A
N / q v
  o
  • N/A Newline(10)をプッシュし、スタックに入力します
  • v ループにリダイレクトする
  • o/q 文字を出力し、スタックの一番下に連続的にプッシュするループ

スタックからEOI(-1)インジケーターを削除しようとしていましたが、出力に影響を与えるようには見えないため、バイトを節約しました。




1

MATL, 4 bytes

`GDT

Try it Online

Explanation

`     % Do...while loop
  G   % Grab input
  D   % Display it on a new line
  T   % Literal TRUE to create an infinite loop

1

C, 26 bytes

f(char*s){for(;;)puts(s);}

A function, f, that takes a C-style string as a parameter, s. The body of the function loops repeatedly, passing the string to the library function puts, which outputs the string to the standard output (stdout) along with a trailing new-line.

Pretty simple stuff. The only hack here is taking advantage of default-int for the return value and then not actually returning a value. That doesn't matter in this case, though, since the function never returns (it just keeps printing forever)!

Try it online!


f(char*s){puts(s);f(s);} saves a few
nmjcman101


1

Java 8, 34 bytes

s->{for(;;System.out.println(s));}

Surprised there wasn't a Java answer yet.

Try it here. (Wait 60 second for it to time-out.)


you don't need to wait for it to timeout, it'll reach the max output buffer of 128kb much faster than that :P
Skidsdev

@Mayube Perhaps, but it's still running Real time: 60.008 s according to the Debug-section before it outputs the result (and gives two warnings 60-sec limit exceeded and 128kb exceeded).
Kevin Cruijssen

1
TIO also caches the results, so once it's been run and hit the timelimit, the output is cached and will simply be served to others who run it without actually re-compiling and running the code
Skidsdev

@Mayube True. I didn't knew this also applied to others. Thought it was a local cache. In that case you can ignore the "(Wait 60 second for it to time-out.)" in my answer. :) But if you check on the "disable output cache" setting you'll see it takes ~ 60 seconds.
Kevin Cruijssen

1

Pyth, 2 bytes

#

Unfortunately I can't remove Q :(

You need to run from command-line like this, so that this is competing:

python3 pyth.py -c "#
"

The interpreter has been fixed too.


1

><>, 16 bytes

i:0(?v
:o71.>~a{

Try it online!

As mentioned in the comments below my first attempt may have misunderstood the question so the newer 16 byte solution has been made, I have left the original below so people may see.

><>, 13 bytes

<ov!?+1:i
oa<

Try it online!


I think there's been a bracketing problem: this code returns "that input followed by (a newline endlessly)", while most of the other answers give "(that input followed by a newline) endlessly"…
Not a tree

@Notatree, Thanks for mentioning this, I have updated my answer to respect your comment :)
Teal pelican

Nice, my best try was 17 bytes!
Not a tree

@Notatree, I changed the check in the first line from 1+?!v to 0)?v which saved a byte, what was your solution, would be nice to see more ><> answers :) - I also believe with some nifty mirrors you may be able to remove the jump instructions too but haven't figured it out yet.
Teal pelican

1
@Notatree, you were really close to the 16 bytes as well, change your second line to a\~ then move your last line around 1 to o>{: and you would have made it. the jump is just to cut out on extra mirrors across lines but yours works just as well :)
Teal pelican


1

Perl 5, 27 bytes

while(1){print"$ARGV[0]\n"}

Try it online!


input will always be given, it just might be an empty string, so you should be able to do while(1){print"$ARGV[0]\n"}
Skidsdev

@Mayube - thx, updated answer.
tale852150

Also welcome to ppcg! I fixed the formatting on your answer for you, in the future I totally recommend using Try it online (linked in the edited answer) as it not only makes testing way easier, but can give you a fully formatted ppcg answer to post
Skidsdev

@Mayube - thx, glad to be here...
tale852150

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