Crea un programma Parrot


15

Dato un input, output quell'input seguito da una nuova riga all'infinito.

L'input sarà una stringa composta solo da caratteri ASCII stampabili ( 0x20-0x7E) e newline ( 0x0A).

Se l'input ha una lunghezza pari a 0, emette continuamente nuove righe.

Si tratta di quindi vince il minor numero di byte in ogni lingua !


La metà di sì è lunga 91 linee .
arte


@VoteToClose Sapevo di aver risposto prima ..
L3viathan,

Microsoft, 1 Steve Ballmer - sviluppatori, sviluppatori, sviluppatori, sviluppatori, ...
sergiol

Risposte:


13

Bash , 8 byte

yes "$1"

Provalo online!


accidenti, 10 minuti di ritardo! ma questo non stampa le nuove righe come nuove righe.
phil294,

scusate, non intendevo le yes-newline ma tutte le newline che potrebbero essere contenute nell'input sono invece stampate come \n. dipende da come leggi la domanda: D
phil294

@Blauhirn Oh ho capito male questa parte: /. È necessario chiamare questo ./script $'Hello\n World'per includere newline reali. Su TIO puoi semplicemente aggiungere una nuova riga all'argomento della riga di comando
ovs,

1
Le quotazioni sono necessarie? yes $1funziona bene per me
DrnglVrgs

2
@DrnglVrgs questo non funziona per me per un input vuoto
ovs

9

05AB1E , 2 byte

[,

Provalo online!


Perché non lo fai [I,?
FrodCube,

@FrodCube: Perché purtroppo non funziona con input vuoti :(
Emigna,

@FrodCube: In realtà, la domanda indica un input di lunghezza 0 e un input non vuoto, quindi posso ridurlo :)
Emigna,

1
@FrodCube: Sì, in realtà è una nuova funzionalità di 05AB1E. Sono sicuro che anche Ohm alla fine lo capirà.
Emigna,

10
[=funziona anche ed è una faccina sorridente; il sorriso è l'unico vantaggio lol.
Magic Octopus Urn,


5

Ohm , 3 byte

∞┼,

Provalo online!

Non funziona con un input vuoto perché Ohm non è bravo nella gestione dell'input rispetto ad altre lingue, ma puoi inserire "".

Spiegazione

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

Sembra bello ... Potresti spiegarlo: D
Decadimento beta

@BetaDecay fatto!
FrodCube,

1
Cordiali saluti, Ohm v2 (si spera presto in arrivo) avrà una gestione degli input molto migliore di prima!
Nick Clifford,

@NickClifford cool! Non vedo l'ora! Mi piace la tua lingua
FrodCube,

1
Oooo ... Ohm è come 05AB1E con comandi diversi ?! Inizia ferventemente a leggere le pagine di GitHub
Magic Octopus Urn il

5

sed, 5

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

Le etichette senza nome sono una "caratteristica" non documentata in sed che funziona con la versione 4.2.2, ma potrebbe non funzionare nelle versioni future.





4

V , 2 byte

òÙ

Non puoi provarlo online per ovvi motivi.

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIO funziona effettivamente per 60 secondi, quindi termina e stampa STDOUT fino a quando il punto di terminazione viene troncato ai primi 128 KiB.
Magic Octopus Urn,

1
Nella Vperché l'output all'interno di una sessione nvim, e non viene stampato STDOUT fino a quando non finisce, TIO uccide la sessione e non vede nulla su STDOUT. Non sapevo cosa hai detto, ma sfortunatamente non risolve V
nmjcman101

1
Ahhhh ... È un peccato, ho dimenticato le proprietà di V, l'ho usato solo una volta senza successo.
Magic Octopus Urn,

3

Rubino, 18 17 12 + 2 = 14 byte

Corri con la -nbandiera.

loop{$><<$_}

Modifica: grazie per @sethrin per la -nbandiera!


Usa la -nbandiera e salta il gets.
Canhascodez,

@sethrin Nice one! Non sapevo di questa bandiera!
Peter Lenkefi,

3

Tasto di scelta automatica , 20 byte

OP non ha specificato come dovrebbe avvenire l'output, ha detto solo che deve succedere all'infinito con una nuova riga dopo di esso. AHK non è stato adattato per l'interazione cmd. Quindi l'output avviene ripetutamente in ToolTipposizione mouse:

tooltip

loop
tooltip,%1%`n`n

Mi piace la loopfunzionalità di AHK . loopripete il blocco successivo per sempre, loop, 10lo ripeterebbe 10 volte. A volte mi manca questa funzione in altre lingue come Python.

Il carattere di escape in AutoHotkey è `(quindi non ci sono problemi con le barre rovesciate nei percorsi di Windows). Per qualche motivo, una nuova riga finale viene ignorata, quindi è necessaria due volte. ( trayTippotrebbe non avere questo "bug" ma non posso provarlo perché corro con wine)

vecchia risposta:

loop
msgbox,%1%

Ho appena realizzato che probabilmente OP non gradirà questa soluzione, l'output avviene con l'interazione dell'utente e non include nuove righe. Cercherò un altro modo.


1
Bene, hai il mio voto per una soluzione creativa
Skidsdev,

3

LibreLogo , 33 byte

Codice:

x=input " repeat [ label x bk 9 ]

Spiegazione:

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

Risultato:

enter image description here


2

Python 2 , 25 byte

s=input()
while 1:print s

Provalo online!

Si prevede che l'input sia un valore letterale Python (virgolette per una stringa, parentesi quadra o parentesi con elementi separati da virgola per un elenco / tupla, ecc.)

Python 3 sarebbe +1 byte perché printè una funzione, ma potrebbe anche eseguire input non elaborati senza la penalità di 4 byte per raw_input()in Python 2.





2

Braingolf , 14 12 byte

#
V[R!&@v1+]

Provalo online!

-2 byte grazie a totalmente umano

Spiegazione

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

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

Fondamentalmente una funzione ricorsiva che emette la stringa prima di richiamare se stessa. È il mio secondo post su codegolf, quindi per favore sii gentile: p


2

Cubix , 6 byte

AN/qvo

Provalo qui

  A
N / q v
  o
  • N/A Premi Newline (10) e inseriscilo nello stack
  • v reindirizzare nel loop
  • o/q loop che emette un personaggio e lo spinge continuamente in fondo alla pila

Stavo per rimuovere l'indicatore EOI (-1) dallo stack, ma non sembra influire sull'output, quindi l'ho lasciato salvando byte.


1

Japt , 5 byte

OpU;ß

Provalo online!

Spiegazione

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


1

MATL, 4 byte

`GDT

Provalo online

Spiegazione

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

1

C, 26 byte

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

Una funzione, fche prende una stringa in stile C come parametro, s. Il corpo della funzione scorre ripetutamente, passando la stringa alla funzione libreria puts, che emette la stringa all'output standard (stdout) insieme a una nuova riga finale.

Roba abbastanza semplice. L'unico hack qui sta sfruttando default-int per il valore restituito e quindi non restituendo effettivamente un valore. Non importa in questo caso, tuttavia, poiché la funzione non ritorna mai (continua a stampare per sempre)!

Provalo online!


f(char*s){puts(s);f(s);}ne salva alcuni
nmjcman101,


1

Java 8, 34 byte

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

Sorpreso non c'era ancora una risposta Java.

Provalo qui. (Attendere 60 secondi per il timeout.)


non è necessario attendere il timeout, raggiungerà il buffer di output massimo di 128kb molto più velocemente di quello: P
Skidsdev

@Mayube Forse, ma è ancora in esecuzione Real time: 60.008 ssecondo la sezione Debug prima di emettere il risultato (e fornisce due avvisi di limite di 60 secondi superato e 128kb superato).
Kevin Cruijssen,

1
TIO memorizza anche nella cache i risultati, quindi una volta che è stato eseguito e colpito il limite di tempo, l'output viene memorizzato nella cache e verrà semplicemente servito agli altri che lo eseguono senza effettivamente ricompilare ed eseguire il codice
Skidsdev

@Mayube True. Non sapevo che questo valeva anche per gli altri. Ho pensato che fosse una cache locale. In tal caso, puoi ignorare " (Attendi 60 secondi affinché scada.) " Nella mia risposta. :) Ma se controlli l'impostazione "disabilita cache di output" vedrai che occorrono circa 60 secondi.
Kevin Cruijssen,

1

Pyth, 2 byte

#

Purtroppo non riesco a rimuovere Q:(

È necessario eseguire dalla riga di comando in questo modo, in modo che questo sia in competizione:

python3 pyth.py -c "#
"

Anche l'interprete è stato corretto.


1

> <> , 16 byte

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

Provalo online!

Come accennato nei commenti qui sotto, il mio primo tentativo potrebbe aver frainteso la domanda, quindi è stata fatta la più recente soluzione a 16 byte, ho lasciato l'originale qui sotto in modo che la gente possa vedere.

> <> , 13 byte

<ov!?+1:i
oa<

Provalo online!


Penso che ci sia stato un problema di bracketing: questo codice restituisce "quell'input seguito da (una nuova riga all'infinito)", mentre la maggior parte delle altre risposte danno "(quell'input seguito da una nuova riga) all'infinito" ...
Non un albero

@Notatree, grazie per averlo menzionato, ho aggiornato la mia risposta per rispettare il tuo commento :)
Pellicano

Bello, il mio miglior tentativo è stato di 17 byte!
Non un albero il

@Notatree, ho cambiato il segno di spunta nella prima riga da 1 + ?! v a 0)? V che ha salvato un byte, qual è stata la tua soluzione, sarebbe bello vedere di più> <> risposte :) - Credo anche con alcuni specchi eleganti potresti essere in grado di rimuovere anche le istruzioni di salto ma non l'hai ancora capito.
Pellicano verde acqua

1
@Notatree, anche tu eri molto vicino ai 16 byte, cambia la tua seconda riga in a \ ~ quindi sposta l'ultima riga intorno a 1 su o> {: e l'avresti fatta. il salto è solo quello di ritagliare specchi extra attraverso le linee ma il tuo funziona altrettanto bene :)
Pellicano verde acqua


1

Perl 5 , 27 byte

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

Provalo online!


l'input verrà sempre fornito, potrebbe trattarsi di una stringa vuota, quindi dovresti essere in grado di farlowhile(1){print"$ARGV[0]\n"}
Skidsdev

@Mayube - thx, risposta aggiornata.
tale852150,

Benvenuto anche in ppcg! Ho corretto la formattazione della tua risposta per te, in futuro ti consiglio vivamente di usarlo Provalo online (collegato nella risposta modificata) in quanto non solo semplifica i test, ma può darti una risposta ppcg completamente formattata per postare
Skidsdev

@Mayube - grazie, felice di essere qui ...
tale852150

1

SAS, 32 byte

%macro t(s);%put&s;%t(&s);%mend;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.