Erstellen Sie ein Papageienprogramm


15

Bei einer Eingabe geben Sie diese Eingabe endlos aus, gefolgt von einer neuen Zeile.

Die Eingabe erfolgt als Zeichenfolge, die nur aus druckbaren ASCII-Zeichen ( 0x20-0x7E) und Zeilenumbrüchen () besteht.0x0A ) besteht.

Wenn die Eingabe die Länge 0 hat, werden Zeilenumbrüche endlos ausgegeben.

Dies ist so dass die wenigsten Bytes in jeder Sprache gewinnen!


Die Hälfte von yes ist 91 Zeilen lang .
Manatwork


@VoteToClose Ich wusste, dass ich das schon einmal beantwortet habe.
L3viathan

Microsoft, 1 Steve Ballmer - Entwickler, Entwickler, Entwickler, Entwickler, ...
Sergiol

Antworten:


13

Bash , 8 Bytes

yes "$1"

Probieren Sie es online!


Verdammt, 10 Minuten zu spät! Dies druckt jedoch keine Zeilenumbrüche als Zeilenumbrüche aus.
phil294

Entschuldigung, ich habe die yes-newlines nicht gemeint, aber alle neuen Zeilen, die in der Eingabe enthalten sein könnten, werden stattdessen als ausgedruckt \n. Art hängt davon ab, wie Sie die Frage lesen: D
phil294

@Blauhirn Oh, ich habe diesen Teil falsch verstanden: /. Sie müssen dies aufrufen ./script $'Hello\n World', um echte Zeilenumbrüche einzuschließen. In TIO können Sie dem Befehlszeilenargument einfach eine neue Zeile hinzufügen
ovs

1
Sind die Angebote notwendig? yes $1funktioniert gut für mich
DrnglVrgs

2
@DrnglVrgs das funktioniert bei mir nicht für eine leere
ovs

9

Warum machst du das nicht [I,?
FrodCube

@FrodCube: Weil das mit leeren Eingaben leider nicht funktioniert :(
Emigna

@FrodCube: Tatsächlich gibt die Frage die Eingabe der Länge 0 und nicht die leere Eingabe an, damit ich diese verringern kann :)
Emigna

1
@FrodCube: Ja, es ist eine ziemlich neue Funktion in 05AB1E. Ich bin sicher, Ohm wird es irgendwann auch bekommen.
Emigna

10
[=funktioniert auch und ist ein smileygesicht; Das Lächeln ist der einzige Vorteil, lol.
Magic Octopus Urn


5

Ohm , 3 Bytes

∞┼,

Probieren Sie es online!

Es funktioniert nicht mit einer leeren Eingabe, da Ohm im Vergleich zu anderen Sprachen schlecht bei der Eingabebearbeitung ist, aber Sie können "" eingeben.

Erläuterung

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

Das sieht cool aus ... Könnten Sie es erklären: D
Beta Decay

@BetaDecay erledigt!
FrodCube

1
Zu Ihrer Information, Ohm v2 (hoffentlich bald verfügbar) hat eine viel bessere Eingabebearbeitung als zuvor!
Nick Clifford

@ NickClifford cool! Ich freue mich darauf! Ich mag deine Sprache
FrodCube

1
Oooo ... Ist Ohm wie 05AB1E mit verschiedenen Befehlen ?! Beginnt leidenschaftlich GitHub-Seiten zu lesen
Magic Octopus Urn

5

sed, 5

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

Unbenannte Labels sind eine undokumentierte "Funktion" in sed, die mit Version 4.2.2 funktioniert, in zukünftigen Versionen jedoch möglicherweise nicht mehr funktioniert.





4

V , 2 Bytes

òÙ

Sie können dies aus offensichtlichen Gründen nicht online versuchen.

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIO läuft tatsächlich 60 Sekunden lang, wird dann beendet und druckt das STDOUT, bis der Endpunkt auf die ersten 128 KB gekürzt ist.
Magic Octopus Urn

1
In Vweil die Ausgabe , die es innerhalb einer NVIM Sitzung, und nicht auf STDOUT gedruckt , bis es fertig ist , tötet TIO die Sitzung und sieht nichts auf STDOUT. Ich wusste nicht, was Sie gesagt haben, aber leider wird V
nmjcman101

1
Ahhhh ... Das ist bedauerlich, ich habe die Eigenschaften von V vergessen, ich habe es nur einmal erfolglos verwendet.
Magic Octopus Urn

3

Rubin, 18 17 12 + 2 = 14 Bytes

Laufen Sie mit der -nFlagge.

loop{$><<$_}

Edit: Danke für @sethrin für die -nFlagge!


Benutze die -nFlagge und überspringe die gets.
Canhascodez

@sethrin Schöne! Ich wusste nichts von dieser Flagge!
Peter Lenkefi

3

AutoHotkey , 20 Bytes

OP hat nicht spezifiziert, wie die Ausgabe erfolgen soll, es muss nur endlos mit einem Zeilenumbruch danach geschehen. AHK war nicht auf cmd-Interaktion zugeschnitten. Die Ausgabe erfolgt also wiederholt in einer ToolTipPosition an der Maus:

Tooltip

loop
tooltip,%1%`n`n

Ich mag AHKs loopFeature. loopwiederholt den nächsten Block für immer,loop, 10 würde ihn 10 Mal wiederholen. Manchmal vermisse ich diese Funktion in anderen Sprachen wie Python.

Das Escape-Zeichen in AutoHotkey ist `(daher gibt es keine Probleme mit Backslashes in Windows-Pfaden). Aus irgendeinem Grund wird ein abschließender Zeilenumbruch ignoriert, sodass er zweimal benötigt wird. ( trayTipMöglicherweise gibt es diesen "Bug" nicht, aber ich kann ihn nicht testen, weil ich mit Wein laufe.)

alte antwort:

loop
msgbox,%1%

Ich habe gerade festgestellt, dass OP diese Lösung wahrscheinlich nicht mag, die Ausgabe erfolgt mit Benutzerinteraktion und enthält keine Zeilenumbrüche. Ich werde nach einem anderen Weg suchen.


1
Nun, Sie haben mein Votum für eine kreative Lösung
Skidsdev

3

LibreLogo , 33 Bytes

Code:

x=input " repeat [ label x bk 9 ]

Erläuterung:

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

Ergebnis:

Bildbeschreibung hier eingeben


2

Python 2 , 25 Bytes

s=input()
while 1:print s

Probieren Sie es online!

Es wird erwartet, dass die Eingabe ein Python-Literal ist (Anführungszeichen für eine Zeichenfolge, eckige Klammer oder Klammern mit durch Kommas getrennten Elementen für eine Liste / ein Tupel usw.).

Python 3 würde +1 Byte betragen, da dies printeine Funktion ist, könnte aber auch eine unformatierte Eingabe ohne die 4-Byte-Strafe für raw_input()in Python 2 durchführen.




2

Haskell, 14 Bytes

cycle.(++"\n")

Probieren Sie es online!

Fügen Sie eine neue Zeile an die Eingabe an und erstellen Sie eine Liste mit unendlichen Kopien.

Alternative Version, auch 14 Bytes:

unlines.repeat

Die alternative Version ist ziemlich elegant :)
Conor O'Brien

2

Braingolf , 14 12 Bytes

#
V[R!&@v1+]

Probieren Sie es online!

-2 Bytes dank totalhuman

Erläuterung

#\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 Bytes

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

Grundsätzlich eine rekursive Funktion, die den String ausgibt, bevor sie sich erneut aufruft. Es ist mein zweiter Beitrag über Codegolf, sei also bitte nett: p


2

Cubix , 6 Bytes

AN/qvo

Teste es hier

  A
N / q v
  o
  • N/A Drücken Sie Newline (10) und geben Sie etwas in den Stapel ein
  • v umleiten in die Schleife
  • o/q Schleife, die ein Zeichen ausgibt und es kontinuierlich nach unten schiebt

Ich wollte den EOI (-1) -Indikator vom Stapel entfernen, aber es scheint keinen Einfluss auf die Ausgabe zu haben, also hat er das Speichern von Bytes überlassen.




1

MATL, 4 Bytes

`GDT

Probieren Sie es online

Erläuterung

`     % 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);}

Eine Funktion, fdie eine Zeichenfolge im C-Stil als Parameter verwendet s. Der Rumpf der Funktion durchläuft wiederholt eine Schleife und übergibt die Zeichenfolge an die Bibliotheksfunktion puts, die die Zeichenfolge zusammen mit einer nachgestellten neuen Zeile an die Standardausgabe (stdout) ausgibt.

Ziemlich einfaches Zeug. Der einzige Hack hier besteht darin, default-int für den Rückgabewert zu nutzen und dann tatsächlich keinen Wert zurückzugeben. In diesem Fall spielt das jedoch keine Rolle, da die Funktion niemals zurückkehrt (sie druckt nur für immer)!

Probieren Sie es online!


f(char*s){puts(s);f(s);}spart ein paar
nmjcman101


1

Java 8, 34 Bytes

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

Überrascht gab es noch keine Java-Antwort.

Probieren Sie es hier aus. (Warten Sie 60 Sekunden, bis die Zeit abgelaufen ist.)


Sie müssen nicht warten, bis die Zeit abgelaufen ist, da der maximale Ausgabepuffer von 128 KB viel schneller erreicht wird: P
Skidsdev

@Mayube Vielleicht, aber es läuft immer noch Real time: 60.008 sgemäß dem Debug-Abschnitt, bevor es das Ergebnis ausgibt (und gibt zwei Warnungen aus, dass die 60-Sekunden-Grenze überschritten und die 128-KB-Grenze überschritten wurden).
Kevin Cruijssen

1
TIO speichert die Ergebnisse auch im Cache, sodass die Ausgabe, sobald sie ausgeführt wurde und das Zeitlimit erreicht hat, zwischengespeichert wird und einfach an andere weitergeleitet wird, die sie ausführen, ohne den Code neu zu kompilieren und auszuführen
Skidsdev,

@ Mayube True. Ich wusste nicht, dass dies auch für andere gilt. Dachte, es wäre ein lokaler Cache. In diesem Fall können Sie das " (Warten Sie 60 Sekunden, bis die Zeit abgelaufen ist.) " In meiner Antwort ignorieren . :) Wenn Sie jedoch die Einstellung "Ausgabecache deaktivieren" aktivieren, dauert dies ca. 60 Sekunden.
Kevin Cruijssen

1

Pyth, 2 Bytes

#

Leider kann ich nicht entfernen Q:(

Sie müssen wie folgt von der Befehlszeile aus ausgeführt werden, damit dies konkurriert:

python3 pyth.py -c "#
"

Der Interpreter wurde ebenfalls repariert.


1

> <> , 16 Bytes

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

Probieren Sie es online!

Wie in den Kommentaren unten erwähnt, hat mein erster Versuch die Frage möglicherweise falsch verstanden, sodass die neuere 16-Byte-Lösung erstellt wurde. Ich habe das Original unten belassen, damit die Leute es sehen können.

> <> , 13 Bytes

<ov!?+1:i
oa<

Probieren Sie es online!


Ich glaube, es gab ein Problem mit der Klammerung: Dieser Code gibt "die Eingabe gefolgt von (einer endlosen Zeile)" zurück, während die meisten anderen Antworten "(die Eingabe gefolgt von einer neuen Zeile) endlos" ergeben ...
Kein Baum

@Notatree, Vielen Dank für Ihre Erwähnung, ich habe meine Antwort aktualisiert, um Ihren Kommentar zu respektieren :)
Teal Pelican

Schön, mein bester Versuch waren 17 Bytes!
Kein Baum

@Notatree, ich habe die Prüfung in der ersten Zeile von 1 + ?! v in 0) geändert? V, die ein Byte gespeichert hat, was war Ihre Lösung, wäre schön, mehr> <> Antworten zu sehen :) - ich glaube auch mit einigen geschickter Spiegel Sie können möglicherweise die Sprunganweisungen auch entfernen, haben es aber noch nicht herausgefunden.
Teal Pelican

1
@Notatree, du warst auch sehr nahe an den 16 Bytes, ändere deine zweite Zeile in ein \ ~ und verschiebe deine letzte Zeile um 1 nach o> {: und du hättest es geschafft. Der Sprung ist nur auf zusätzliche Spiegel über Linien ausgeschnitten, aber deine funktioniert genauso gut :)
Teal Pelican


1

Perl 5 , 27 Bytes

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

Probieren Sie es online!


Eingang wird immer gegeben werden, es könnte nur eine leere Zeichenfolge sein, so dass Sie sollten in der Lage zu tunwhile(1){print"$ARGV[0]\n"}
Skidsdev

@ Mayube - Danke, aktualisierte Antwort.
Tale852150

Willkommen auch bei ppcg! Ich habe die Formatierung Ihrer Antwort für Sie korrigiert. In Zukunft empfehle ich die Verwendung von Try it online (in der bearbeiteten Antwort verlinkt), da dies nicht nur das Testen erleichtert, sondern Ihnen auch eine vollständig formatierte ppcg-Antwort auf Post
Skidsdev

@ Mayube - thx, froh, hier zu sein ...
tale852150

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.