Utwórz program papug

15

Biorąc pod uwagę dane wejściowe, dane wyjściowe, po których następuje znak nowej linii bez końca.

Dane wejściowe będą ciągiem znaków składającym się wyłącznie z drukowalnych znaków ASCII ( 0x20-0x7E) i znaków nowej linii ( 0x0A).

Jeśli wejście ma długość 0, niekończące się wyjście nowych linii.

To jest więc wygrywa najmniej bajtów w każdym języku !

Skidsdev
źródło
Połowa tak ma 91 linii .
manatwork
5
Tak powiązane to boli.
Addison Crump,
@VoteToClose Wiedziałem , że odpowiedziałem na to wcześniej ...
L3viathan
Microsoft, 1 Steve Ballmer - programiści, programiści, programiści, programiści, ...
sergiol

Odpowiedzi:

13

Bash , 8 bajtów

yes "$1"

Wypróbuj online!

ovs
źródło
cholera, 10 minut spóźnienia! ale to nie drukuje nowych linii jako nowych linii.
phil294
przepraszam, nie yeschodziło mi o -newline, ale wszelkie nowe wiersze, które mogą być zawarte w danych wejściowych, są zamiast tego drukowane jako \n. rodzaj zależy od tego, jak czytasz pytanie: D
phil294
@Blauhirn Oh, źle zrozumiałem tę część: /. Musisz to nazwać, ./script $'Hello\n World'aby uwzględnić prawdziwe nowe linie. W TIO możesz po prostu dodać nowy wiersz do argumentu wiersza poleceń
dniu
1
Czy oferty są konieczne? yes $1działa dobrze dla mnie
DrnglVrgs
2
@DrnglVrgs to nie działa dla mnie przy pustym wejściu
ovs
9

05AB1E , 2 bajty

[,

Wypróbuj online!

Emigna
źródło
Dlaczego nie robisz [I,?
FrodCube,
@FrodCube: Ponieważ niestety to nie działa przy pustych danych wejściowych :(
Emigna
@FrodCube: Właściwie pytanie zawiera dane wejściowe o długości 0, a nie puste, więc mogę to zmniejszyć :)
Emigna,
1
@FrodCube: Tak, to całkiem nowa funkcja w 05AB1E. Jestem pewien, że Ohm w końcu to też dostanie.
Emigna
10
[=działa również i jest buźką; uśmiech to jedyna zaleta lol.
Magic Octopus Urn
5

Ohm , 3 bajty

∞┼,

Wypróbuj online!

Nie działa z pustym wejściem, ponieważ Ohm nie radzi sobie z wprowadzaniem danych w porównaniu do innych języków, ale możesz wpisać „”.

Wyjaśnienie

∞     Infinite loop next code (until ";" or end of line)
 ┼    Get first input
  ,   Println
FrodCube
źródło
Wygląda to fajnie ... Czy możesz to wyjaśnić: D
Rozpad
@BetaDecay gotowe!
FrodCube
1
FYI, Ohm v2 (mam nadzieję, że wkrótce), będzie miał znacznie lepszą obsługę danych wejściowych niż wcześniej!
Nick Clifford
@NickClifford cool! Nie mogę się tego doczekać! Lubię twój język
FrodCube
1
Oooo ... Czy Ohm jest jak 05AB1E z różnymi poleceniami ?! Gorąco zaczyna czytać strony GitHub
Magic Octopus Urn
5

sed, 5

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

Nienazwane etykiety to nieudokumentowana „funkcja” w sed, która działa z wersją 4.2.2, ale może nie działać w przyszłych wersjach.

Cyfrowa trauma
źródło
4

Python 2 , 21 bajtów

def f(s):print s;f(s)

Nie zakłada limitu rekurencji

Wypróbuj online!

Jonathan Allan
źródło
4

V , 2 bajty

òÙ

Nie możesz wypróbować tego online z oczywistych powodów.

ò    'Recursively
 Ù   'Duplicate the current line downwards
nmjcman101
źródło
TIO faktycznie działa przez 60 sekund, a następnie kończy i wypisuje STDOUT aż do momentu, w którym punkt końcowy zostanie obcięty do pierwszego 128 kB.
Magic Octopus Urn
1
W Vponieważ wyjście to wewnątrz sesji nvim, a nie jest drukowana na standardowe wyjście, dopóki nie zakończy się, TIO zabija sesję i nie widzi nic na standardowe wyjście. Nie wiedziałem o tym, co powiedziałeś, ale niestety nie naprawia V
nmjcman101
1
Ahhhh ... To niefortunne, zapomniałem właściwości V, użyłem go tylko raz bezskutecznie.
Magic Octopus Urn
3

Ruby, 18 17 12 + 2 = 14 bajtów

Uruchom z -nflagą.

loop{$><<$_}

Edycja: Dzięki za @sethrin za -nflagę!

Peter Lenkefi
źródło
Użyj -nflagi i pomiń gets.
canhascodez
@sethrin Nice one! Nie wiedziałem o tej fladze!
Peter Lenkefi
3

AutoHotkey , 20 bajtów

OP nie określił, jak powinien wyglądać wynik, powiedział tylko, że musi się to odbywać bez końca z nową linią po nim. AHK nie był przystosowany do interakcji cmd. Tak więc dane wyjściowe powtarzają się wielokrotnie w pozycji ToolTipmyszy:

tooltip

loop
tooltip,%1%`n`n

Podoba mi się loopfunkcja AHK . looppowtarza następny blok na zawsze, loop, 10powtórzyłby to 10 razy. Czasami tęsknię za tą funkcją w innych językach, takich jak Python.

Znakiem ucieczki w programie AutoHotkey jest ` (więc nie ma problemów z odwrotnymi ukośnikami w ścieżkach Windows). Z jakiegoś powodu końcowy znak nowej linii jest ignorowany, więc jest potrzebny dwukrotnie. (trayTip może nie mieć tego „błędu”, ale nie mogę go przetestować, ponieważ działa z winem)

stara odpowiedź:

loop
msgbox,%1%

Właśnie zdałem sobie sprawę, że OP prawdopodobnie nie spodoba się temu rozwiązaniu, efektem jest interakcja użytkownika i nie zawiera żadnych nowych linii. Poszukam innego sposobu.

phil294
źródło
1
Cóż, mam moje poparcie dla kreatywnego rozwiązania
Skidsdev
3

LibreLogo , 33 bajty

Kod:

x=input " repeat [ label x bk 9 ]

Wyjaśnienie:

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

Wynik:

enter image description here

Grant Miller
źródło
2

Python 2 , 25 bajtów

s=input()
while 1:print s

Wypróbuj online!

Oczekuje się, że dane wejściowe będą literałami w języku Python (cudzysłowy dla łańcucha, nawiasu kwadratowego lub nawiasów z elementami oddzielonymi przecinkami dla listy / krotki itp.)

Python 3 miałby +1 bajt, ponieważ printjest funkcją, ale może również wykonywać surowe dane wejściowe bez kary 4 bajtów raw_input()w Pythonie 2.

Mego
źródło
2

PHP, 20 bajtów

for(;;)echo"$argn
";
użytkownik63956
źródło
2

Haskell, 14 bajtów

cycle.(++"\n")

Wypróbuj online!

Dołącz nowy wiersz do danych wejściowych i wykonaj listę nieskończonych kopii.

Alternatywna wersja, także 14 bajtów:

unlines.repeat
nimi
źródło
Alternatywna wersja jest dość elegancka :)
Conor O'Brien
2

Braingolf , 14 12 bajtów

#
V[R!&@v1+]

Wypróbuj online!

-2 bajty dzięki całkowicie ludzkiemu

Wyjaśnienie

#\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
Skidsdev
źródło
2

C, 24 bajty

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

Zasadniczo funkcja rekurencyjna, która generuje ciąg znaków przed ponownym wywołaniem się. To mój drugi post na codegolf, więc proszę bądź miły: str

Clémox
źródło
2

Cubix , 6 bajtów

AN/qvo

Sprawdź to tutaj

  A
N / q v
  o
  • N/A Wciśnij Newline (10) i wejdź na stos
  • v przekierować do pętli
  • o/q pętla, która wypisuje znak i ciągle wypycha go na spód stosu

Chciałem usunąć wskaźnik EOI (-1) ze stosu, ale wydaje się, że nie wpływa on na wynik, więc zostawiłem bajty oszczędzające.

MickyT
źródło
1

Japt , 5 bajtów

OpU;ß

Wypróbuj online!

Wyjaśnienie

OpU;     output the input with a newline
    ß    run the code again with the same input
Tomek
źródło
1

C #, 40 bajtów

s=>{for(;;)System.Console.WriteLine(s);}
TheLethalCoder
źródło
1

MATL, 4 bajty

`GDT

Wypróbuj online

Wyjaśnienie

`     % Do...while loop
  G   % Grab input
  D   % Display it on a new line
  T   % Literal TRUE to create an infinite loop
Suever
źródło
1

C, 26 bajtów

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

Funkcja, f, który pobiera ciąg C-styl jako parametr s. Ciało funkcji zapętla się wielokrotnie, przekazując ciąg znaków do funkcji biblioteki puts, która przekazuje ciąg znaków na standardowe wyjście (standardowe wyjście) wraz z końcowym nowym wierszem.

Całkiem proste rzeczy. Jedyny hack tutaj polega na wykorzystaniu default-int dla wartości zwracanej, a następnie nie zwracaniu wartości. Nie ma to jednak znaczenia w tym przypadku, ponieważ funkcja nigdy nie wraca (po prostu drukuje wiecznie)!

Wypróbuj online!

Cody Gray
źródło
f(char*s){puts(s);f(s);}ratuje kilka
nmjcman101
1

Groovy, 20 bajtów

x={println it;x(it)}
Urna Magicznej Ośmiornicy
źródło
Czy to działa wiecznie, ponieważ jest rekurencyjne?
Twometr
1

Java 8, 34 bajty

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

Zaskoczony, że nie ma jeszcze odpowiedzi w języku Java.

Wypróbuj tutaj. (Poczekaj 60 sekund, aż upłynie limit czasu).

Kevin Cruijssen
źródło
nie musisz czekać, aż upłynie limit czasu, osiągnie maksymalny bufor wyjściowy 128 kb znacznie szybciej: P
Skidsdev
@Mayube Być może, ale nadal działa Real time: 60.008 szgodnie z sekcją debugowania, zanim wyświetli wynik (i daje dwa ostrzeżenia przekroczony 60-sekundowy limit i przekroczone 128kb).
Kevin Cruijssen
1
TIO również buforuje wyniki, więc po uruchomieniu i osiągnięciu limitu czasu dane wyjściowe są buforowane i będą po prostu podawane innym użytkownikom, którzy uruchomią je bez faktycznej ponownej kompilacji i uruchomienia kodu
Skidsdev
@Mayube True. Nie wiedziałem, że dotyczy to również innych. Myślałem, że to lokalna pamięć podręczna. W takim przypadku możesz zignorować „ (Poczekaj 60 sekund, aż upłynie limit czasu.) ” W mojej odpowiedzi. :) Ale jeśli zaznaczysz ustawienie „wyłącz wyjściową pamięć podręczną”, zobaczysz, że zajmie to ~ 60 sekund.
Kevin Cruijssen
1

Pyth, 2 bajty

#

Niestety nie mogę usunąć Q :(

Musisz uruchomić z wiersza polecenia w ten sposób, aby to konkurowało:

python3 pyth.py -c "#
"

Tłumacz również został naprawiony.

Erik the Outgolfer
źródło
1

> <> , 16 bajtów

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

Wypróbuj online!

Jak wspomniano w komentarzach poniżej, moja pierwsza próba mogła źle zrozumieć pytanie, więc powstało nowsze 16-bajtowe rozwiązanie, pozostawiłem oryginał poniżej, aby ludzie mogli zobaczyć.

> <> , 13 bajtów

<ov!?+1:i
oa<

Wypróbuj online!

Pelikan turkusowy
źródło
Myślę, że wystąpił problem z braketingiem: ten kod zwraca „to wejście, po którym następuje (nowa linia bez końca)”, podczas gdy większość innych odpowiedzi daje „(to wejście, po których następuje nowa linia) bez końca”…
Nie drzewo
@Notatree, Dziękujemy za wzmiankę o tym, zaktualizowałem odpowiedź, aby uszanować twój komentarz :)
Pelikan Teal
Fajnie, moja najlepsza próba to 17 bajtów!
Nie drzewo,
@Notatree, zmieniłem zaznaczenie w pierwszym wierszu z 1 + ?! v na 0)? V, które zapisały bajt, jakie było twoje rozwiązanie, fajnie byłoby zobaczyć więcej> <> odpowiedzi :) - Wierzę też w niektóre fajne lustra, możesz być w stanie usunąć instrukcje skoku, ale jeszcze tego nie rozgryzłeś.
Teal pelikan
1
@Notatree, byłeś naprawdę blisko 16 bajtów, zmień drugą linię na \ ~, a następnie przesuń ostatnią linię o 1 do o> {: i zrobiłbyś to. skok jest po prostu wyciąć dodatkowe lustra w poprzek linii, ale twoje działa równie dobrze :)
Pelikan Teal
1

Perl 5 , 27 bajtów

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

Wypróbuj online!

tale852150
źródło
dane wejściowe będą zawsze podawane, może to być pusty ciąg znaków, więc powinieneś to zrobićwhile(1){print"$ARGV[0]\n"}
Skidsdev
@Mayube - dzięki, zaktualizowana odpowiedź.
tale852150
Witamy również w ppcg! Poprawiłem formatowanie twojej odpowiedzi dla ciebie, w przyszłości całkowicie polecam użycie Wypróbuj online (link w edytowanej odpowiedzi), ponieważ nie tylko ułatwia testowanie, ale może dać ci w pełni sformatowaną odpowiedź ppcg na post
Skidsdev
@Mayube - dzięki, cieszę się, że tu
jestem
1

SAS, 32 bajty

%macro t(s);%put&s;%t(&s);%mend;
J_Lard
źródło