Tạo một chương trình vẹt


15

Đưa ra một đầu vào, đầu ra mà đầu vào theo sau là một dòng mới vô tận.

Đầu vào sẽ là một chuỗi chỉ bao gồm các ký tự ASCII có thể in ( 0x20-0x7E) và dòng mới ( 0x0A).

Nếu đầu vào là 0, đầu ra mới vô tận.

Đây là để có ít byte nhất trong mỗi ngôn ngữ !


Một nửa của có là 91 dòng dài .
manatwork


@VoteToC Đóng Tôi biết tôi đã trả lời điều này trước đây ..
L3viathan

Microsoft, 1 Steve Ballmer - nhà phát triển, nhà phát triển, nhà phát triển, nhà phát triển, ...
sergiol

Câu trả lời:


13

Bash , 8 byte

yes "$1"

Hãy thử trực tuyến!


chết tiệt, trễ 10 phút! nhưng điều này không in ra dòng mới như dòng mới.
phil294

xin lỗi, tôi không có nghĩa là các yesdòng mới nhưng bất kỳ dòng mới nào có thể chứa IN đầu vào thay vào đó được in ra như \n. loại phụ thuộc vào cách bạn đọc câu hỏi: D
phil294

@Blauhirn Oh tôi đã hiểu nhầm phần này: /. Bạn cần gọi đây là ./script $'Hello\n World'để bao gồm các dòng mới thực sự. Trên TIO, bạn chỉ có thể thêm một dòng mới vào đối số dòng lệnh
ovs

1
Là những trích dẫn cần thiết? yes $1hoạt động tốt với tôi
DrnglVrss

2
@DrnglVrss điều này không hoạt động đối với tôi cho một đầu vào trống
ngày

9

Tại sao bạn không làm gì [I,?
FrodCube

@FrodCube: Vì không may, nó không hoạt động với đầu vào trống :(
Emigna

@FrodCube: Trên thực tế, câu hỏi nêu đầu vào có độ dài 0 và không phải đầu vào trống để tôi có thể giảm điều này :)
Emigna

1
@FrodCube: Vâng, đó thực sự là một tính năng mới trong 05AB1E. Tôi chắc chắn Ohm cuối cùng cũng sẽ nhận được nó.
Emigna

10
[=cũng hoạt động và là một khuôn mặt cười; nụ cười là lợi ích duy nhất lol.
Bạch tuộc ma thuật Urn


5

, 3 byte

∞┼,

Hãy thử trực tuyến!

Nó không hoạt động với đầu vào trống vì Ohm rất tệ trong việc xử lý đầu vào so với các ngôn ngữ khác, nhưng bạn có thể nhập "".

Giải trình

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

Điều này có vẻ hay ... Bạn có thể giải thích nó: D
Beta Decay

@BetaDecay xong!
FrodCube

1
FYI, Ohm v2 (hy vọng sẽ sớm ra mắt) sẽ xử lý đầu vào tốt hơn nhiều so với trước đây!
Nick Clifford

@NickClifford ngầu! Tôi mong rằng! Tôi thích ngôn ngữ của bạn
FrodCube

1
Oooo ... Có phải Ohm giống như 05AB1E với các lệnh khác nhau không?! Bắt đầu đọc các trang GitHub
Bạch tuộc ma thuật Urn

5

sed, 5

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

Nhãn không tên là một "tính năng" không có giấy tờ trong sed hoạt động với phiên bản 4.2.2, nhưng có thể không hoạt động trong các phiên bản trong tương lai.





4

V , 2 byte

òÙ

Bạn không thể thử trực tuyến vì lý do rõ ràng.

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIO thực sự chạy trong 60 giây sau đó chấm dứt và in STDOUT lên cho đến khi điểm kết thúc bị cắt ngắn thành 128KiB đầu tiên.
Bạch tuộc ma thuật Urn

1
Trong Vvì đầu ra nó bên trong một phiên nvim, và không được in để STDOUT cho đến khi nó kết thúc, TIO giết phiên và thấy không có gì trên STDOUT. Tôi không biết về những gì bạn nói, nhưng thật không may, nó không sửa được V
nmjcman101

1
Ahhhh ... Thật không may, tôi đã quên các thuộc tính của V, tôi chỉ sử dụng nó một lần không thành công.
Bạch tuộc ma thuật Urn

3

Ruby, 18 17 12 + 2 = 14 byte

Chạy với -ncờ.

loop{$><<$_}

Chỉnh sửa: Cảm ơn @sethrin cho -ncờ!


Sử dụng -ncờ và bỏ qua gets.
canhascodez

@sethrin Đẹp một cái! Tôi không biết về lá cờ này!
Peter Lenkefi

3

Tự động , 20 byte

OP đã không chỉ định làm thế nào đầu ra sẽ xảy ra, chỉ nói rằng nó phải xảy ra vô tận với một dòng mới sau nó. AHK không được thiết kế cho tương tác cmd. Vì vậy, đầu ra xảy ra liên tục ở ToolTipvị trí chuột:

chú giải công cụ

loop
tooltip,%1%`n`n

Tôi thích looptính năng của AHK . loopLặp lại khối tiếp theo mãi mãi, loop, 10sẽ lặp lại nó 10 lần. Đôi khi tôi bỏ lỡ tính năng này trong các ngôn ngữ khác như Python.

Ký tự thoát trong AutoHotkey là `(vì vậy không có vấn đề gì với dấu gạch chéo ngược trong đường dẫn Windows). Vì một số lý do, một dòng mới bị bỏ qua nên cần hai lần. ( trayTipcó thể không có "lỗi" này nhưng tôi không thể kiểm tra vì chạy với rượu)

câu trả lời cũ:

loop
msgbox,%1%

Tôi chỉ nhận ra rằng OP có thể sẽ không thích giải pháp này, đầu ra xảy ra với sự tương tác của người dùng và không bao gồm các dòng mới. Tôi sẽ tìm cách khác.


1
Chà, bạn đã nhận được sự ủng hộ của tôi cho một giải pháp sáng tạo
Skidsdev

3

LibreLogo , 33 byte

Mã số:

x=input " repeat [ label x bk 9 ]

Giải trình:

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

Kết quả:

nhập mô tả hình ảnh ở đây


2

Python 2 , 25 byte

s=input()
while 1:print s

Hãy thử trực tuyến!

Đầu vào dự kiến ​​là một chữ Python (dấu ngoặc kép cho chuỗi, dấu ngoặc vuông hoặc dấu ngoặc đơn với các mục được phân tách bằng dấu phẩy cho danh sách / bộ, v.v.)

Python 3 sẽ là +1 byte vì printlà một hàm, nhưng cũng có thể thực hiện nhập liệu thô mà không bị phạt 4 byte đối với raw_input()Python 2.




2

Haskell, 14 byte

cycle.(++"\n")

Hãy thử trực tuyến!

Nối một dòng mới vào đầu vào và tạo danh sách các bản sao vô hạn của nó.

Phiên bản thay thế, cũng 14 byte:

unlines.repeat

Phiên bản thay thế khá thanh lịch :)
Conor O'Brien

2

Braingolf , 14 12 byte

#
V[R!&@v1+]

Hãy thử trực tuyến!

-2 byte nhờ hoàn toàn nhân đạo

Giải trình

#\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);}

Về cơ bản là một hàm đệ quy đưa ra chuỗi trước khi tự gọi lại. Đây là bài viết thứ hai của tôi về codegolf vì vậy hãy thật tuyệt: p


2

Khối , 6 byte

AN/qvo

Kiểm tra nó ở đây

  A
N / q v
  o
  • N/A Đẩy Newline (10) và nhập vào ngăn xếp
  • v chuyển hướng vào vòng lặp
  • o/q vòng lặp xuất ra một ký tự và liên tục đẩy nó xuống dưới cùng của ngăn xếp

Tôi sẽ loại bỏ chỉ báo EOI (-1) khỏi ngăn xếp, nhưng nó dường như không ảnh hưởng đến đầu ra nào, vì vậy đã để nó lưu byte.





1

C, 26 byte

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

Một hàm, flấy chuỗi kiểu C làm tham số , s. Phần thân của các vòng lặp lặp đi lặp lại, chuyển chuỗi đến hàm thư việnputs , đầu ra chuỗi đến đầu ra tiêu chuẩn (stdout) cùng với một dòng mới.

Công cụ khá đơn giản. Cách hack duy nhất ở đây là lợi dụng default-int cho giá trị trả về và sau đó không thực sự trả về giá trị. Tuy nhiên, điều đó không thành vấn đề vì hàm này không bao giờ quay trở lại (nó chỉ in mãi mãi)!

Hãy thử trực tuyến!


f(char*s){puts(s);f(s);}tiết kiệm một vài
nmjcman101


1

Java 8, 34 byte

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

Ngạc nhiên là chưa có câu trả lời Java.

Hãy thử nó ở đây. (Đợi 60 giây để nó hết thời gian.)


bạn không cần đợi đến khi hết thời gian, nó sẽ đạt tới bộ đệm đầu ra tối đa 128kb nhanh hơn nhiều: P
Skidsdev

@Mayube Có lẽ, nhưng nó vẫn chạy Real time: 60.008 stheo phần Gỡ lỗi trước khi nó đưa ra kết quả (và đưa ra hai cảnh báo vượt quá giới hạn 60 giây và vượt quá 128kb).
Kevin Cruijssen

1
TIO cũng lưu trữ các kết quả, do đó, khi nó được chạy và chạm vào bảng chấm công, đầu ra được lưu vào bộ đệm và sẽ chỉ được phục vụ cho những người khác chạy nó mà không thực sự biên dịch lại và chạy mã
Skidsdev

@Mayube Đúng. Tôi không biết điều này cũng áp dụng cho người khác. Nghĩ rằng đó là một bộ đệm cục bộ. Trong trường hợp đó, bạn có thể bỏ qua " (Đợi 60 giây để hết thời gian.) " Trong câu trả lời của tôi. :) Nhưng nếu bạn kiểm tra cài đặt "tắt bộ đệm đầu ra", bạn sẽ thấy nó mất ~ 60 giây.
Kevin Cruijssen

1

Bình thường, 2 byte

#

Thật không may, tôi không thể xóa Q:(

Bạn cần chạy từ dòng lệnh như thế này để nó cạnh tranh:

python3 pyth.py -c "#
"

Thông dịch viên đã được cố định quá.


1

> <> , 16 byte

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

Hãy thử trực tuyến!

Như đã đề cập trong các bình luận bên dưới, lần thử đầu tiên của tôi có thể đã hiểu nhầm câu hỏi nên giải pháp 16 byte mới hơn đã được thực hiện, tôi đã để lại bản gốc bên dưới để mọi người có thể thấy.

> <> , 13 byte

<ov!?+1:i
oa<

Hãy thử trực tuyến!


Tôi nghĩ rằng đã có một vấn đề về dấu ngoặc: mã này trả về "đầu vào tiếp theo (một dòng mới vô tận)", trong khi hầu hết các câu trả lời khác đưa ra "(đầu vào đó theo dòng mới) vô tận"
Không phải là một cây

@Notatree, Cảm ơn bạn đã đề cập đến điều này, tôi đã cập nhật câu trả lời của mình để tôn trọng bình luận của bạn :)
Teal pelican

Thật tuyệt, cố gắng tốt nhất của tôi là 17 byte!
Không phải là một cái cây

@Notatree, tôi đã thay đổi kiểm tra trong dòng đầu tiên từ 1 +?! V thành 0)? V đã lưu một byte, giải pháp của bạn là gì, sẽ rất tuyệt khi xem thêm> <> câu trả lời :) - Tôi cũng tin với một số gương tiện lợi bạn cũng có thể loại bỏ các hướng dẫn nhảy nhưng chưa tìm ra.
Teal pelican

1
@Notatree, bạn cũng thực sự gần với 16 byte, thay đổi dòng thứ hai của bạn thành \ ~ sau đó di chuyển dòng cuối cùng của bạn xung quanh 1 thành o> {: và bạn sẽ thực hiện được. nhảy chỉ là để cắt ra các gương phụ trên các đường nhưng bạn cũng hoạt động tốt :)
Teal pelican


1

Perl 5 , 27 byte

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

Hãy thử trực tuyến!


đầu vào sẽ luôn được cung cấp, nó chỉ có thể là một chuỗi trống, vì vậy bạn sẽ có thể làm đượcwhile(1){print"$ARGV[0]\n"}
Skidsdev

@Mayube - thx, cập nhật câu trả lời.
tale852150

Cũng chào mừng bạn đến với ppcg! Tôi đã sửa định dạng cho câu trả lời của bạn cho bạn, trong tương lai tôi hoàn toàn khuyên bạn nên sử dụng Dùng thử trực tuyến (được liên kết trong câu trả lời đã chỉnh sửa) vì nó không chỉ giúp cách kiểm tra dễ dàng hơn mà còn có thể cung cấp cho bạn câu trả lời ppcg được định dạng đầy đủ cho bài đăng
Skidsdev

@Mayube - thx, rất vui khi được ở đây ...
tale852150

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.