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 !




@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!


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!


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

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.





4

V , 2 bajty

òÙ

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

ò    'Recursively
 Ù   'Duplicate the current line downwards

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

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.


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


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.




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

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

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


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.




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

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!


f(char*s){puts(s);f(s);}ratuje kilka
nmjcman101


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).


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.


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!


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!


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.