Bir Papağan Programı Oluşturun


15

Bir girdi verildiğinde, bu girdiyi ve ardından bir satırsonu sonu gönderilir.

Giriş yalnızca yazdırılabilir ASCII karakterleri ( 0x20-0x7E) ve yeni satırları (0x0A ) .

Girdi uzunluğu 0 ise, satır sonu olmadan çıktı alın.

Bu kadar her dilde en az bayt kazanır!


Evet'in yarısı 91 satır uzunluğunda .
manatwork


@VoteToClose Bunu daha önce yanıtladığımı biliyordum ..
L3viathan

Microsoft, 1 Steve Ballmer - geliştiriciler, geliştiriciler, geliştiriciler, geliştiriciler, ...
sergiol

Yanıtlar:


13

Bash , 8 bayt

yes "$1"

Çevrimiçi deneyin!


lanet olsun, 10 dakika geç! ancak bu yeni satırları yeni satır olarak yazdırmaz.
phil294

üzgünüm, yes-newlines demek istemedim ama giriş IN içerebilecek herhangi bir yeni satırlar yerine olarak yazdırılır \n. nasıl bir soru okudum bağlıdır: D
phil294

@Blauhirn Oh bu kısmı yanlış anladım:. Bunu ./script $'Hello\n World'gerçek yeni satırları içerecek şekilde çağırmanız gerekir . TIO'da komut satırı argümanına yeni bir satır ekleyebilirsiniz
ovs

1
Teklifler gerekli mi? yes $1benim için iyi çalışıyor
DrnglVrgs

2
Boş bir girdi için benim için yapar değil işi @DrnglVrgs
ovs



5

Ohm , 3 bayt

∞┼,

Çevrimiçi deneyin!

Boş bir girişle çalışmaz, çünkü Ohm giriş işlemede diğer dillerle karşılaştırıldığında kötüdür, ancak "" girebilirsiniz.

açıklama

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

Bu harika görünüyor ... Açıklayabilir misiniz: D
Beta Çürümesi

@BetaDecay bitti!
FrodCube

1
FYI, Ohm v2 (umarım yakında-ish geliyor) öncekinden çok daha iyi giriş işlemlerine sahip olacak!
Nick Clifford

@NickClifford harika! Şunu dört gözle bekliyorum! Dilinizi seviyorum
FrodCube

1
Oooo ... Ohm farklı komutlarla 05AB1E gibi mi ?! Şiddetle GitHub sayfalarını okumaya başlar
Sihirli Ahtapot Urn

5

sed, 5

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

Adsız etiketler, sed'de, 4.2.2 sürümü ile çalışan, ancak gelecekteki sürümlerde çalışmayabilecek, belgesiz bir "özellik" tir.





4

V , 2 bayt

òÙ

Bunu açık nedenlerden dolayı çevrimiçi olarak deneyemezsiniz.

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIO aslında 60 saniye boyunca çalışır, sonra sonlandırılır ve son 128KiB'ye kadar kesilene kadar STDOUT'u yazdırır.
Sihirli Ahtapot Urn

1
Gelen Vbitene kadar bir nvim oturumun içindeki çıkış o ve STDOUT yazdırılan olmadığından, TIO oturumu öldürür ve STDOUT üzerinde hiçbir şey görür. Ne dediğini bilmiyordum, ama ne yazık ki V
nmjcman101

1
Ahhhh ... Bu talihsiz, V'nin özelliklerini unuttum, sadece bir kez başarısız kullandım.
Sihirli Ahtapot Urn

3

Yakut, 18 17 12 + 2 = 14 bayt

-nBayrağı ile çalıştırın .

loop{$><<$_}

Düzenleme: -nBayrak için @sethrin için teşekkürler !


-nBayrağı kullanın ve gets.
canhascodez

@sethrin Güzel biri! Bu bayrağı bilmiyordum!
Peter Lenkefi

3

AutoHotkey , 20 Bayt

OP , çıktının nasıl olması gerektiğini belirtmedi , sadece bundan sonra bir satırsonu ile sonsuza kadar olması gerektiğini söyledi. AHK cmd etkileşimi için tasarlanmamıştır. Böylece çıktı tekrar tekrar ToolTipfare konumunda olur:

tooltip

loop
tooltip,%1%`n`n

AHK'nın loopözelliğini seviyorum . loopbir sonraki bloğu sonsuza kadar loop, 10tekrarlar, 10 kez tekrarlar. Bazen bu özelliği Python gibi diğer dillerde özlüyorum.

AutoHotkey'deki çıkış karakteri `(Windows yollarındaki ters eğik çizgilerle ilgili herhangi bir sorun yoktur). Herhangi bir nedenle, sondaki yeni satır dikkate alınmaz, bu nedenle iki kez gereklidir. (trayTip bu "hata" olmayabilir ama şarap ile çalışan çünkü test edemez)

eski cevap:

loop
msgbox,%1%

OP'nin muhtemelen bu çözümü beğenmeyeceğini, çıktının kullanıcı etkileşimi ile gerçekleştiğini ve yeni satır içermediğini fark ettim. Başka bir yol arayacağım.


1
Yaratıcı bir çözüm için benim oyumu aldın
Skidsdev

3

LibreLogo , 33 bayt

Kod:

x=input " repeat [ label x bk 9 ]

Açıklama:

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

Sonuç:

enter image description here


2

Python 2 , 25 bayt

s=input()
while 1:print s

Çevrimiçi deneyin!

Girdinin bir Python değişmezi olması beklenir (bir dizge, köşeli ayraç veya liste / grup için virgülle ayrılmış öğeler içeren parantezler vb.)

printBir işlev olduğu için Python 3 +1 bayt olur , ancak raw_input()Python 2'de 4 baytlık ceza olmadan ham girdi de yapabilir .




2

Haskell, 14 bayt

cycle.(++"\n")

Çevrimiçi deneyin!

Girdiye bir satırsonu ekleyin ve sonsuz sayıda kopyasını oluşturun.

Alternatif sürüm, ayrıca 14 bayt:

unlines.repeat

Alternatif sürüm oldukça zarif :)
Conor O'Brien

2

Braingolf , 14 12 bayt

#
V[R!&@v1+]

Çevrimiçi deneyin!

Tamamen insanlık sayesinde -2 bayt

açıklama

#\nV[R!&@v1+]  Implicit input of string as charcodes
#\n            Push charcode of newline
   V           Create stack2
    [R...v1+]  While loop, runs endlessly
      !&@      Print entire stack1 as chars without popping

2

C, 24 bayt

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

Temel olarak, kendini tekrar aramadan önce dizeyi çıkaran özyinelemeli bir işlev. Codegolf onun ikinci yazı bu yüzden lütfen güzel: p


2

Cubix , 6 bayt

AN/qvo

Burada test edin

  A
N / q v
  o
  • N/A Push Newline(10) and input onto the stack
  • v redirect into the loop
  • o/q loop that outputs a character and pushes it to the bottom of the stack continuously

I was going to remove the EOI (-1) indicator from the stack, but it doesn't appear to affect the output any, so have left it saving bytes.


1

Japt, 5 bytes

OpU;ß

Try it online!

Explanation

OpU;     output the input with a newline
    ß    run the code again with the same input


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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.