Создать программу Parrot

15

Учитывая ввод, выводим этот ввод бесконечно новую строку.

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

Если input имеет длину 0, бесконечно выводите символы новой строки.

Это поэтому побеждает меньше байтов на каждом языке !

Skidsdev
источник
Половина да - это 91 строка .
manatwork
5
Так связано это больно.
Аддисон Крамп
@VoteToClose Я знал, что отвечал на это раньше ..
L3viathan
Microsoft, 1 Steve Ballmer - разработчики, разработчики, разработчики, разработчики, ...
sergiol

Ответы:

13

Баш , 8 байт

yes "$1"

Попробуйте онлайн!

овс
источник
блин, 10 минут позже! но это не выводит новые строки как новые строки.
phil294
извините, я не имел в виду yes-newlines, но любые символы новой строки, которые могут содержаться во входных данных, вместо этого выводятся как \n. вид зависит от того, как ты читаешь вопрос: D
phil294
@Blauhirn О, я неправильно понял эту часть: /. Вы должны назвать это, ./script $'Hello\n World'чтобы включить реальные переводы строк. На TIO вы можете просто добавить новую строку в аргумент командной строки
овс
1
Нужны ли цитаты? yes $1у меня отлично работает
DrnglVrgs
2
@DrnglVrgs это не работает для меня для пустого ввода
ovs
9

05AB1E , 2 байта

[,

Попробуйте онлайн!

Emigna
источник
Почему не делаешь [I,?
FrodCube
@FrodCube: потому что, к сожалению, это не работает с пустым вводом :(
Emigna
@FrodCube: На самом деле, в вопросе указывается ввод длины 0, а не пустой ввод, поэтому я могу уменьшить это :)
Emigna
1
@FrodCube: Да, это действительно новая функция в 05AB1E. Я уверен, что в конце концов Ому это тоже достанется.
Emigna
10
[=также работает и является смайликом; улыбка - единственное преимущество, лол.
Волшебная Урна Осьминога
5

Ом , 3 байта

∞┼,

Попробуйте онлайн!

Он не работает с пустым вводом, потому что Ohm плох при обработке ввода по сравнению с другими языками, но вы можете ввести "".

объяснение

∞     Infinite loop next code (until ";" or end of line)
 ┼    Get first input
  ,   Println
FrodCube
источник
Это выглядит круто ... Не могли бы вы объяснить это: D
Beta Decay
@BetaDecay сделано!
FrodCube
1
К вашему сведению, Ohm v2 (надеюсь, скоро появится) будет намного лучше обрабатывать ввод, чем раньше!
Ник Клиффорд
@NickClifford круто! Я с нетерпением жду, что! Мне нравится ваш язык
FrodCube
1
Оооо ... Ома, как 05AB1E с разными командами ?! Яростно начинает читать страницы GitHub
Волшебная Урна Осьминога
5

сед, 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
nmjcman101
источник
TIO фактически работает в течение 60 секунд, затем завершается и печатает STDOUT до тех пор, пока точка завершения не будет усечена до первых 128 КБ.
Волшебная Урна Осьминога
1
В Vтак как выход его внутри на nvim сессии, и не печатается на STDOUT , пока он не закончит, TIO убивает сессию и ничего не видит на STDOUT. Я не знал о том, что вы сказали, но, к сожалению, это не исправляет V
nmjcman101
1
Аааа ... К сожалению, я забыл свойства V, я использовал его только один раз безуспешно.
Волшебная Урна Осьминога
3

Руби, 18 17 12 + 2 = 14 байт

Беги с -nфлагом.

loop{$><<$_}

Редактировать: Спасибо за @sethrin за -nфлаг!

Петр Ленкефи
источник
Используйте -nфлаг и пропустите gets.
canhascodez
@sethrin Хороший! Я не знал об этом флаге!
Петер Ленкефи
3

AutoHotkey , 20 байт

OP не уточнил, как должен происходить вывод, сказал только, что это должно происходить бесконечно с новой строкой после него. AHK не был приспособлен для взаимодействия с cmd. Таким образом, вывод происходит несколько раз в позиции ToolTipмыши:

подсказка

loop
tooltip,%1%`n`n

Мне нравится loopособенность AHK . loopповторяет следующий блок навсегда,loop, 10 повторил бы это 10 раз. Иногда я пропускаю эту функцию в других языках, таких как Python.

Экранирующим символом в AutoHotkey является `(поэтому с обратными слешами в путях Windows проблем нет). По какой-то причине завершающий символ новой строки игнорируется, поэтому он необходим дважды. ( trayTipвозможно, нет этой "ошибки", но я не могу проверить ее, потому что работает с вином)

старый ответ:

loop
msgbox,%1%

Я только что понял, что OP, вероятно, не понравится это решение, вывод происходит при взаимодействии с пользователем и не включает переводы строки. Я буду искать другой путь.

phil294
источник
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
]

Результат:

введите описание изображения здесь

Грант Миллер
источник
2

Python 2 , 25 байт

s=input()
while 1:print s

Попробуйте онлайн!

Предполагается, что входными данными будут литералы Python (кавычки для строки, квадратные скобки или круглые скобки с разделенными запятыми элементами для списка / кортежа и т. Д.)

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

Mego
источник
2

Haskell, 14 байтов

cycle.(++"\n")

Попробуйте онлайн!

Добавьте к вводу новую строку и составьте список ее бесконечных копий.

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

unlines.repeat
Ними
источник
Альтернативная версия довольно элегантна :)
Конор О'Брайен
2

Braingolf , 14 12 байт

#
V[R!&@v1+]

Попробуйте онлайн!

-2 байта благодаря полностью человеческому

объяснение

#\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
источник
2

C, 24 байта

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

В основном это рекурсивная функция, которая выводит строку перед повторным вызовом. Это мой второй пост на Codegolf, так что будьте милы: p

Clémox
источник
2

Cubix , 6 байтов

AN/qvo

Проверьте это здесь

  A
N / q v
  o
  • N/A Нажмите Newline (10) и введите в стек
  • v перенаправить в цикл
  • o/q цикл, который выводит символ и непрерывно помещает его на дно стека

Я собирался удалить индикатор EOI (-1) из стека, но он никак не влияет на вывод, поэтому оставил его для сохранения байтов.

MickyT
источник
1

C #, 40 байт

s=>{for(;;)System.Console.WriteLine(s);}
TheLethalCoder
источник
1

C, 26 байтов

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

Функция, fкоторая принимает строку в стиле C в качестве параметра s. Тело функции циклически повторяется, передавая строку в библиотечную функциюputs , которая выводит строку на стандартный вывод (stdout) вместе с завершающей новой строкой.

Довольно простые вещи. Единственный хак здесь - использовать default-int для возвращаемого значения, а затем фактически не возвращать значение. Это не имеет значения в этом случае, так как функция никогда не возвращается (она просто печатает вечно)!

Попробуйте онлайн!

Коди Грей
источник
f(char*s){puts(s);f(s);}несколько спасает
nmjcman101
1

Groovy, 20 байтов

x={println it;x(it)}
Урна волшебного осьминога
источник
Это работает вечно, так как это рекурсивно?
Twometer
1

Java 8, 34 байта

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

Удивлен, но пока не было ответа на Java.

Попробуй это здесь. (Подождите 60 секунд, пока он истечет.)

Кевин Круйссен
источник
вам не нужно ждать, пока он истечет, он достигнет максимального выходного буфера 128 КБ гораздо быстрее, чем это: P
Skidsdev
@Mayube Возможно, но он все еще работает в Real time: 60.008 sсоответствии с разделом Debug, прежде чем выводит результат (и выдает два предупреждения, превышение 60-секундного ограничения и превышение 128 КБ).
Кевин Круйссен
1
TIO также кэширует результаты, поэтому, как только он будет запущен и достигнет ограничения по времени, выходные данные будут кэшированы и будут просто переданы другим, кто его запускает без фактической перекомпиляции и запуска кода.
Skidsdev
@Mayube Правда. Я не знал, что это относится и к другим. Думал, это был локальный кеш. В этом случае вы можете проигнорировать « (подождите 60 секунд, пока оно истечет.) » В моем ответе. :) Но если вы проверите настройку «отключить кэш вывода», вы увидите, что это займет ~ 60 секунд.
Кевин Круйссен
1

Pyth, 2 байта

#

К сожалению я не могу удалить Q:(

Вам нужно запустить из командной строки, как это, так что это конкурирует:

python3 pyth.py -c "#
"

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

Эрик Outgolfer
источник
1

> <> , 16 байт

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

Попробуйте онлайн!

Как упоминалось в комментариях ниже, моя первая попытка, возможно, неправильно поняла вопрос, поэтому было принято более новое 16-байтовое решение, я оставил оригинал ниже, чтобы люди могли видеть.

> <> , 13 байт

<ov!?+1:i
oa<

Попробуйте онлайн!

Чирок пеликан
источник
Я думаю, что была проблема с брекетингом: этот код возвращает «тот ввод, за которым следует (бесконечный перевод строки)», в то время как большинство других ответов дают «(ввод, за которым следует перевод строки) бесконечно»…
Не дерево
@Notatree, спасибо за упоминание этого, я обновил свой ответ, чтобы уважать ваш комментарий :)
Teal
Хорошо, моя лучшая попытка была 17 байтов!
Не дерево
@Notatree, я изменил чек в первой строке с 1 + ?! v на 0)? V, который сохранил байт, каково было ваше решение, было бы неплохо увидеть больше> <> ответов :) - я тоже считаю, что с некоторыми Изящные зеркала, вы можете удалить инструкции перехода, но вы еще не поняли.
Тил пеликан
1
@Notatree, вы тоже были очень близки к 16 байтам, измените вторую строку на \ ~, а затем переместите последнюю строку в диапазоне от 1 до o> {: и вы бы это сделали. прыжок просто для того, чтобы
Тил Пеликан
1

Perl 5 , 27 байт

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

Попробуйте онлайн!

tale852150
источник
всегда будет вводиться, просто это может быть пустая строка, так что вы должны это сделатьwhile(1){print"$ARGV[0]\n"}
Skidsdev
@Mayube - спасибо, обновленный ответ.
tale852150
Также добро пожаловать в PPCG! Я исправил форматирование в вашем ответе для вас, в будущем я полностью рекомендую использовать Попробовать онлайн (ссылка в отредактированном ответе), поскольку это не только облегчает тестирование, но и может дать вам полностью отформатированный ответ ppcg на сообщение
Skidsdev
@Mayube - спасибо, рад быть здесь ...
tale852150