Створіть програму «Папуга»


15

З огляду на введення, виведіть цей вхід з наступним новим рядком нескінченно.

Введенням буде рядок, що складається тільки з друкованих символів ASCII ( 0x20-0x7E) та нових рядків ( 0x0A).

Якщо вхід дорівнює 0, нескінченно виводьте нові рядки.

Це тому виграє найменше байтів на кожній мові !




@VoteToClose Я знав , що відповів на це раніше ..
L3viathan

Microsoft, 1 Steve Ballmer - розробники, розробники, розробники, розробники, ...
sergiol

Відповіді:


13

чорт, запізнився на 10 хвилин! але це не друкує нові рядки як нові рядки.
phil294

Вибачте, я не мав на увазі yes-newlines, але будь-які нові рядки, які можуть міститися у вхідних даних, замість цього роздруковуються як \n. вид залежить від того, як ви читаєте питання: D
phil294

@Blauhirn О, я неправильно зрозумів цю частину: /. Вам потрібно зателефонувати цьому, ./script $'Hello\n World'щоб включити реальні нові рядки. У TIO ви можете просто додати новий рядок до аргументу командного рядка
ovs

1
Чи потрібні цитати? yes $1добре працює для мене
DrnglVrgs

2
@DrnglVrgs для мене це не працює для порожнього введення
ов

9

Чому ти не робиш [I,?
FrodCube

@FrodCube: Тому що, на жаль, це не працює з порожнім входом :(
Emigna

@FrodCube: Насправді, питання вказує введення довжини 0, а не порожній вхід, щоб я міг зменшити це :)
Emigna

1
@FrodCube: Так, це фактично нова функція 05AB1E. Я впевнений, що Ом отримає це в підсумку також.
Емінья

10
[=також працює і є усміхненим обличчям; посмішка - єдина користь, хаха.
Чарівний восьминога Урна


5

Ом , 3 байти

∞┼,

Спробуйте в Інтернеті!

Він не працює з порожнім входом, оскільки Ом погано керує введенням порівняно з іншими мовами, але ви можете "" вводити.

Пояснення

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

Це виглядає круто ... Чи можете ви це пояснити: D
бета-розпад

@BetaDecay зроблено!
FrodCube

1
FYI, Ohm v2 (сподіваємось, незабаром-ish) матиме набагато краще вхідне управління, ніж раніше!
Нік Кліффорд

@NickClifford класно! Я з нетерпінням чекаю цього! Мені подобається ваша мова
FrodCube

1
Оооо ... Ом, як 05AB1E з різними командами ?! Наполегливо починає читати сторінки GitHub
Чарівний восьминога Урн

5

sed, 5

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

Безназвані мітки - це недокументована "функція" в sed, яка працює з версією 4.2.2, але може не працювати в майбутніх версіях.





4

V , 2 байти

òÙ

Ви не можете спробувати це в Інтернеті з зрозумілих причин.

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIO насправді працює протягом 60 секунд, після чого припиняється і друкується STDOUT до тих пір, поки точка закінчення не буде усічена до перших 128KiB.
Чарівний восьминога Урна

1
У Vтак як вихід його всередині на nvim сесії, і не друкується на STDOUT , поки він не закінчить, TIO вбиває сесію і нічого не бачить на STDOUT. Я не знав про те, що ви сказали, але, на жаль, це не виправляє V
nmjcman101

1
А-а-а ... Це прикро, я забув властивості V, я лише один раз безуспішно користувався ним.
Magic Octopus Urn


3

AutoHotkey , 20 байт

ОП не вказала, як має відбуватися вихід, сказала, що це має відбуватися нескінченно з новим рядком після нього. AHK не був розроблений для взаємодії cmd. Отже, вихід відбувається повторно в ToolTipположенні миші:

tooltip

loop
tooltip,%1%`n`n

Мені подобається loopособливість AHK . loopповторює наступний блок назавжди, loop, 10повторив би його 10 разів. Іноді я пропускаю цю функцію на інших мовах, таких як Python.

Символ втечі в AutoHotkey є ` (тому проблем із зворотними шляхах Windows немає.) З якоїсь причини проміжок нового рядка ігнорується, тому він потрібен двічі. (trayTip може не бути цієї "помилки", але я не можу перевірити її, тому що працює з вином)

стара відповідь:

loop
msgbox,%1%

Я щойно зрозумів, що ОП, мабуть, не подобається це рішення, вихід відбувається з взаємодією з користувачем і не включає нових рядків. Я буду шукати інший шлях.


1
Що ж, ви отримали мою нагоду за творче рішення
Skidsdev

3

LibreLogo , 33 байти

Код:

x=input " repeat [ label x bk 9 ]

Пояснення:

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

Результат:

enter image description here


2

Python 2 , 25 байт

s=input()
while 1:print s

Спробуйте в Інтернеті!

Очікується, що введення буде літералом Python (лапки для рядка, квадратної дужки або круглих дужок з розділеними комами елементами для списку / кортежу тощо)

Python 3 був би +1 байтом, тому що printце функція, але також може виконувати необмежене введення даних без 4-байтового штрафу raw_input()в Python 2.




2

Хаскелл, 14 байт

cycle.(++"\n")

Спробуйте в Інтернеті!

Додайте до вводу новий рядок і складіть список нескінченних його копій.

Альтернативна версія, також 14 байт:

unlines.repeat

Альтернативна версія досить елегантна :)
Conor O'Brien


2

C, 24 байти

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

По суті, рекурсивна функція, яка виводить рядок перед тим, як знову викликати себе. Це мій другий пост про codegolf, тож будь ласка: p


2

Cubix , 6 байт

AN/qvo

Тестуйте це тут

  A
N / q v
  o
  • N/A Натисніть Newline (10) та введіть у стек
  • v переадресація в цикл
  • o/q цикл, який видає персонаж і постійно натискає на дно стека

Я збирався видалити індикатор EOI (-1) зі стека, але, схоже, це ніяк не впливає на вихід, тому залишив його збереження байтів.





1

C, 26 байт

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

Функція, f, яка приймає рядок C-стиль в якості параметра s. Тіло функції повторно циклічно переходить, передаючи рядок у бібліотечну функціюputs , яка виводить рядок до стандартного виводу (stdout) разом із кінцевим новим рядком.

Досить прості речі. Єдиний хак тут - це скористатися типовим значенням для повернення значення, а потім фактично не повернути значення. У цьому випадку це не має значення, оскільки функція ніколи не повертається (вона просто продовжує друкувати назавжди)!

Спробуйте в Інтернеті!


f(char*s){puts(s);f(s);}економить декілька
nmjcman101


1

Java 8, 34 байти

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

Здивований, що відповіді на Java ще не було.

Спробуйте тут. (Зачекайте 60 секунд, щоб він закінчився.)


вам не потрібно чекати, коли його очікує час, він досягне максимального вихідного буфера 128 кбіт набагато швидше, ніж це: P
Skidsdev

@Mayube Можливо, але він все ще працює Real time: 60.008 sзгідно з розділом налагодження, перш ніж він виводить результат (і дає два попередження, 60-секундний ліміт перевищений і 128 кбіт перевищений).
Кевін Круїссен

1
TIO також кешує результати, тож після запуску та натискання на тимчасове значення, вихід буде кешований та буде просто поданий іншим, хто запускає його, фактично не перекомпілюючи та не запустивши код
Skidsdev

@Mayube True. Я не знав, що це стосується і інших. Думав, що це місцевий кеш. У такому випадку ви можете проігнорувати " (зачекайте 60 секунд, щоб він закінчився.) " У моїй відповіді. :) Але якщо ви встановите параметр "відключити кеш виводу", ви побачите, що це займає ~ 60 секунд.
Кевін Круїссен

1

Pyth, 2 байти

#

На жаль, я не можу видалити Q:(

Вам потрібно запустити такий командний рядок, щоб він змагався:

python3 pyth.py -c "#
"

Перекладач теж виправлений.


1

> <> , 16 байт

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

Спробуйте в Інтернеті!

As mentioned in the comments below my first attempt may have misunderstood the question so the newer 16 byte solution has been made, I have left the original below so people may see.

><>, 13 bytes

<ov!?+1:i
oa<

Try it online!


I think there's been a bracketing problem: this code returns "that input followed by (a newline endlessly)", while most of the other answers give "(that input followed by a newline) endlessly"…
Not a tree

@Notatree, Thanks for mentioning this, I have updated my answer to respect your comment :)
Teal pelican

Nice, my best try was 17 bytes!
Not a tree

@Notatree, I changed the check in the first line from 1+?!v to 0)?v which saved a byte, what was your solution, would be nice to see more ><> answers :) - I also believe with some nifty mirrors you may be able to remove the jump instructions too but haven't figured it out yet.
Teal pelican

1
@Notatree, you were really close to the 16 bytes as well, change your second line to a\~ then move your last line around 1 to o>{: and you would have made it. the jump is just to cut out on extra mirrors across lines but yours works just as well :)
Teal pelican


1

Perl 5, 27 bytes

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

Try it online!


input will always be given, it just might be an empty string, so you should be able to do while(1){print"$ARGV[0]\n"}
Skidsdev

@Mayube - thx, updated answer.
tale852150

Also welcome to ppcg! I fixed the formatting on your answer for you, in the future I totally recommend using Try it online (linked in the edited answer) as it not only makes testing way easier, but can give you a fully formatted ppcg answer to post
Skidsdev

@Mayube - thx, glad to be here...
tale852150

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.