Buat Program Parrot

15

Diberikan input, output yang input diikuti oleh baris baru tanpa akhir.

Input akan berupa string yang hanya terdiri dari karakter ASCII yang dapat dicetak ( 0x20-0x7E) dan baris baru ( 0x0A).

Jika input panjang 0, output baris baru tanpa henti.

Ini adalah sehingga byte paling sedikit di setiap bahasa menang!

Skidsdev
sumber
Setengah dari ya adalah 91 baris .
manatwork
5
Jadi terkait sakit.
Addison Crump
@VoteToTutup Saya tahu saya sudah menjawab ini sebelumnya ..
L3viathan
Microsoft, 1 Steve Ballmer - pengembang, pengembang, pengembang, pengembang, ...
sergiol

Jawaban:

13

Bash , 8 byte

yes "$1"

Cobalah online!

ovs
sumber
sial, terlambat 10 menit! tetapi ini tidak mencetak baris baru sebagai baris baru.
phil294
maaf, saya tidak bermaksud yes-newlines tetapi setiap baris baru yang bisa dimasukkan DALAM input malah dicetak sebagai \n. jenis tergantung pada bagaimana Anda membaca pertanyaan: D
phil294
@ Blauhirn Oh saya salah mengerti bagian ini: /. Anda perlu menyebutnya sebagai ./script $'Hello\n World'menyertakan baris baru. Pada TIO Anda bisa menambahkan baris baru ke argumen baris perintah
ovs
1
Apakah kutipan itu perlu? yes $1berfungsi dengan baik untuk saya
DrnglVrgs
2
@DrnglVrgs ini tidak berfungsi untuk saya untuk input kosong
Ov
9

05AB1E , 2 byte

[,

Cobalah online!

Emigna
sumber
Kenapa kamu tidak melakukannya [I,?
FrodCube
@FrodCube: Karena sayangnya itu tidak bekerja dengan input kosong :(
Emigna
@FrodCube: Sebenarnya, pertanyaan menyatakan input dengan panjang 0 dan bukan input kosong sehingga saya dapat mengurangi ini :)
Emigna
1
@FrodCube: Ya, sebenarnya ini fitur yang cukup baru di 05AB1E. Saya yakin Ohm akhirnya akan mendapatkannya juga.
Emigna
10
[=juga berfungsi dan merupakan wajah yang tersenyum; senyum adalah satu-satunya manfaat lol.
Guci Gurita Ajaib
5

Ohm , 3 byte

∞┼,

Cobalah online!

Ini tidak berfungsi dengan input kosong karena Ohm buruk dalam penanganan input dibandingkan dengan bahasa lain, tetapi Anda dapat memasukkan "".

Penjelasan

∞     Infinite loop next code (until ";" or end of line)
 ┼    Get first input
  ,   Println
FrodCube
sumber
Ini terlihat keren ... Bisakah Anda menjelaskannya: D
Beta Decay
@BetaDecay selesai!
FrodCube
1
FYI, Ohm v2 (semoga segera hadir-ish) akan memiliki penanganan input yang jauh lebih baik daripada sebelumnya!
Nick Clifford
@NickClifford keren! Saya menantikan hal itu! Saya suka bahasa Anda
FrodCube
1
Oooo ... Apakah Ohm seperti 05AB1E dengan perintah berbeda ?! Dengan penuh semangat mulai membaca halaman GitHub
Magic Gurita Guci
5

sed, 5

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

Label tanpa nama adalah "fitur" tidak berdokumen yang berfungsi dengan versi 4.2.2, tetapi mungkin tidak berfungsi di versi mendatang.

Trauma Digital
sumber
4

Jelly , 2 byte

Ṅß

Cobalah online!

Cetak dengan baris baru, ulangi seluruh tautan (program).

Biarawati Bocor
sumber
4

brainfuck , 27 byte

+[>,]++++++++++[[<]>>[.>]<]

Cobalah online!

Biarawati Bocor
sumber
Bisakah Anda menyimpan byte ,[>,]++++++++++[[<]>[.>]<]?
ETHproduk
4

Python 2 , 21 byte

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

Diasumsikan tidak ada batas rekursi

Cobalah online!

Jonathan Allan
sumber
4

V , 2 byte

òÙ

Anda tidak dapat mencoba ini secara online karena alasan yang jelas.

ò    'Recursively
 Ù   'Duplicate the current line downwards
nmjcman101
sumber
TIO actually runs for 60 seconds then terminates and prints the STDOUT up until the termination point truncated to the first 128KiB.
Magic Octopus Urn
1
Dalam Vkarena output dalam sesi nvim, dan tidak dicetak untuk STDOUT sampai selesai, TIO membunuh sesi dan melihat apa-apa di STDOUT. Saya tidak tahu tentang apa yang Anda katakan, tetapi sayangnya itu tidak memperbaiki V
nmjcman101
1
Ahhhh... That's unfortunate, I forgot the properties of V, I've only used it once unsuccessfully.
Magic Octopus Urn
3

Ruby, 18 17 12 + 2 = 14 bytes

Run with the -n flag.

loop{$><<$_}

Edit: Thanks for @sethrin for the -n flag!

Peter Lenkefi
sumber
Gunakan -nbendera dan lewati gets.
canhascodez
@sethrin Bagus sekali! Saya tidak tahu tentang bendera ini!
Peter Lenkefi
3

AutoHotkey, 20 Bytes

OP tidak menentukan bagaimana output harus terjadi, hanya mengatakan itu harus terjadi tanpa akhir dengan baris baru setelahnya. AHK tidak disesuaikan untuk interaksi cmd. Jadi output terjadi berulang kali ToolTippada posisi mouse:

tooltip

loop
tooltip,%1%`n`n

Saya suka loopfitur AHK .loopmengulangi blok selanjutnya selamanya,loop, 10 would repeat it 10 times. Sometimes I miss this feature in other languages like Python.

Karakter melarikan diri di AutoHotkey adalah `(jadi tidak ada masalah dengan garis miring terbalik di jalur Windows). Untuk beberapa alasan, sebuah trailing newline diabaikan sehingga diperlukan dua kali. (trayTip mungkin tidak memiliki "bug" ini tetapi saya tidak dapat mengujinya karena berjalan dengan anggur)

jawaban lama:

loop
msgbox,%1%

Saya baru menyadari bahwa OP mungkin tidak akan menyukai solusi ini, output terjadi dengan interaksi pengguna dan tidak ada baris baru. Saya akan mencari cara lain.

phil294
sumber
1
Nah, Anda mendapatkan
jawaban
3

LibreLogo , 33 byte

Kode:

x=input " repeat [ label x bk 9 ]

Penjelasan:

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

Hasil:

masukkan deskripsi gambar di sini

Grant Miller
sumber
2

Python 2 , 25 byte

s=input()
while 1:print s

Cobalah online!

Input diharapkan berupa Python literal (kutipan untuk string, braket persegi atau tanda kurung dengan item yang dipisahkan koma untuk daftar / tuple, dll.)

Python 3 akan menjadi +1 byte karena printmerupakan fungsi, tetapi juga dapat melakukan input mentah tanpa penalti 4-byte untuk raw_input()dalam Python 2.

Mego
sumber
2

PHP, 20 byte

for(;;)echo"$argn
";
pengguna63956
sumber
2

Haskell, 14 byte

cycle.(++"\n")

Cobalah online!

Tambahkan baris baru ke input dan buat daftar salinannya yang tak terbatas.

Versi alternatif, juga 14 byte:

unlines.repeat
nimi
sumber
Versi alternatifnya cukup elegan :)
Conor O'Brien
2

Braingolf , 14 12 byte

#
V[R!&@v1+]

Cobalah online!

-2 byte terima kasih untuk benar-benar manusia

Penjelasan

#\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
sumber
2

C, 24 byte

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

Pada dasarnya fungsi rekursif yang menghasilkan string sebelum memanggil dirinya lagi. Ini postingan kedua saya di codegolf jadi tolong baik-baik: p

Clemox
sumber
2

Cubix , 6 byte

AN/qvo

Uji di sini

  A
N / q v
  o
  • N/A Tekan Newline (10) dan masukan ke tumpukan
  • v redirect ke dalam loop
  • o/q lingkaran yang menampilkan karakter dan mendorongnya ke bagian bawah tumpukan terus menerus

Saya akan menghapus indikator EOI (-1) dari stack, tetapi tampaknya tidak mempengaruhi output apa pun, jadi saya membiarkannya menghemat byte.

MickyT
sumber
1

Japt , 5 byte

OpU;ß

Cobalah online!

Penjelasan

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

C #, 40 byte

s=>{for(;;)System.Console.WriteLine(s);}
TheLethalCoder
sumber
1

MATL, 4 byte

`GDT

Cobalah secara Online

Penjelasan

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

C, 26 byte

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

Fungsi,, fyang menggunakan string gaya-C sebagai parameter s,. Tubuh fungsi loop berulang kali, meneruskan string ke fungsi perpustakaanputs , yang menampilkan string ke output standar (stdout) bersama dengan baris baru yang tertinggal.

Hal-hal yang sangat sederhana. Satu-satunya peretasan di sini adalah memanfaatkan default-int untuk nilai kembali dan kemudian tidak benar-benar mengembalikan nilai. Itu tidak masalah dalam kasus ini, karena fungsi tidak pernah kembali (hanya terus mencetak selamanya)!

Cobalah online!

Cody Grey
sumber
f(char*s){puts(s);f(s);}hemat beberapa
nmjcman101
1

Groovy, 20 byte

x={println it;x(it)}
Guci Gurita Ajaib
sumber
Apakah ini berjalan selamanya karena bersifat rekursif?
Twometer
1

Java 8, 34 byte

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

Terkejut belum ada jawaban Java.

Coba di sini. (Tunggu 60 detik sampai habis.)

Kevin Cruijssen
sumber
Anda tidak perlu menunggu sampai timeout, itu akan mencapai buffer output maksimum 128kb lebih cepat dari itu: P
Skidsdev
@ Mayube Mungkin, tapi masih berjalan Real time: 60.008 ssesuai dengan bagian-Debug sebelum output hasilnya (dan memberikan dua peringatan batas 60 detik terlampaui dan 128kb terlampaui).
Kevin Cruijssen
1
TIO juga melakukan cache hasil, jadi setelah itu dijalankan dan tekan timelimit, output di-cache dan hanya akan disajikan kepada orang lain yang menjalankannya tanpa benar-benar mengkompilasi ulang dan menjalankan kode
Skidsdev
@ Mayube Benar. Saya tidak tahu ini juga berlaku untuk orang lain. Kupikir itu adalah cache lokal. Dalam hal ini Anda dapat mengabaikan " (Tunggu 60 detik untuk waktu habis.) " Dalam jawaban saya. :) Tetapi jika Anda memeriksa pengaturan "disable output cache" Anda akan melihatnya butuh ~ 60 detik.
Kevin Cruijssen
1

Pyth, 2 byte

#

Sayangnya saya tidak bisa menghapus Q :(

Anda perlu menjalankan dari command-line seperti ini, sehingga ini bersaing:

python3 pyth.py -c "#
"

Penerjemah telah diperbaiki juga.

Erik the Outgolfer
sumber
1

> <> , 16 byte

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

Cobalah online!

Seperti disebutkan dalam komentar di bawah ini, upaya pertama saya mungkin telah salah memahami pertanyaan sehingga solusi 16 byte yang lebih baru telah dibuat, saya telah meninggalkan yang asli di bawah ini sehingga orang dapat melihat.

> <> , 13 byte

<ov!?+1:i
oa<

Cobalah online!

Pelican teal
sumber
Saya pikir ada masalah tanda kurung: kode ini mengembalikan "input yang diikuti oleh (baris baru tanpa henti)", sementara sebagian besar jawaban lain memberi "(input yang diikuti oleh baris baru) tanpa akhir" ...
Bukan pohon
@Natatree, Terima kasih telah menyebutkan ini, saya telah memperbarui jawaban saya untuk menghargai komentar Anda :)
Teal pelican
Bagus, percobaan terbaik saya adalah 17 byte!
Bukan pohon
@Natatree, saya mengubah cek di baris pertama dari 1 + ?! v ke 0)? V yang menyimpan byte, apa solusi Anda, akan menyenangkan untuk melihat lebih banyak> <> jawaban :) - Saya juga percaya dengan beberapa nifty mirror Anda mungkin dapat menghapus instruksi lompatan juga tetapi belum mengetahuinya.
Teal pelican
1
@Natatree, Anda benar-benar dekat dengan 16 byte juga, ubah baris kedua Anda menjadi \ ~ kemudian pindahkan baris terakhir Anda sekitar 1 ke o> {: dan Anda akan berhasil. lompatannya hanya untuk memotong cermin tambahan di garis-garis tetapi milikmu juga bekerja dengan baik :)
Teal pelican
1

CJam , 6 byte

q{_n}h

Cobalah online!

Erik the Outgolfer
sumber
@LuisMendo Ooh tidak membaca bagian itu ...
Erik the Outgolfer
1

Perl 5 , 27 byte

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

Cobalah online!

tale852150
sumber
input akan selalu diberikan, mungkin saja berupa string kosong, jadi Anda seharusnya bisa melakukannyawhile(1){print"$ARGV[0]\n"}
Skidsdev
@Mayube - terima kasih, jawaban yang diperbarui.
tale852150
Juga selamat datang di ppcg! Saya memperbaiki pemformatan pada jawaban Anda untuk Anda, di masa depan saya benar-benar merekomendasikan penggunaan Coba online (ditautkan dalam jawaban yang diedit) karena tidak hanya membuat pengujian lebih mudah, tetapi juga dapat memberi Anda jawaban ppcg yang sepenuhnya diformat untuk diposkan
Skidsdev
@ Mayube - thx, senang berada di sini ...
tale852150
1

SAS, 32 byte

%macro t(s);%put&s;%t(&s);%mend;
J_Lard
sumber