Créer un programme Parrot


15

Étant donné une entrée, sortez cette entrée suivie d'une ligne sans fin.

L'entrée sera une chaîne composée uniquement de caractères ASCII imprimables ( 0x20-0x7E) et de nouvelles lignes ( 0x0A).

Si l'entrée est de longueur 0, sortez sans fin des retours à la ligne.

C'est donc le moins d'octets dans chaque langue gagne!


La moitié du oui fait 91 lignes .
manatwork


@VoteToClose Je savais que j'avais déjà répondu à cette question ..
L3viathan

Microsoft, 1 Steve Ballmer - développeurs, développeurs, développeurs, développeurs, ...
sergiol

Réponses:


13

Bash , 8 octets

yes "$1"

Essayez-le en ligne!


putain, 10 minutes de retard! mais cela n'imprime pas les nouvelles lignes comme des nouvelles lignes.
phil294

désolé, je ne parlais pas des yes-nouvelles lignes mais toutes les nouvelles lignes qui pourraient être contenues dans l'entrée sont imprimées en tant que \n. dépend de la façon dont vous lisez la question: D
phil294

@Blauhirn Oh j'ai mal compris cette partie: /. Vous devez appeler cela ./script $'Hello\n World'pour inclure de véritables nouvelles lignes. Sur TIO, vous pouvez simplement ajouter une nouvelle ligne à l'argument de la ligne de commande
ovs

1
Les devis sont-ils nécessaires? yes $1fonctionne bien pour moi
DrnglVrgs

2
@DrnglVrgs cela ne fonctionne pas pour moi pour une entrée vide
ovs

9

Pourquoi tu ne fais pas [I,?
FrodCube

@FrodCube: Parce que malheureusement cela ne fonctionne pas avec une entrée vide :(
Emigna

@FrodCube: En fait, la question indique une entrée de longueur 0 et non une entrée vide, donc je peux diminuer cela :)
Emigna

1
@FrodCube: Oui, c'est une fonctionnalité assez nouvelle dans 05AB1E en fait. Je suis sûr que Ohm l'obtiendra également.
Emigna

10
[=fonctionne également et est un visage souriant; le sourire est le seul avantage lol.
Magic Octopus Urn


5

Ohm , 3 octets

∞┼,

Essayez-le en ligne!

Cela ne fonctionne pas avec une entrée vide car Ohm est mauvais dans la gestion des entrées par rapport aux autres langues, mais vous pouvez entrer "".

Explication

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

Cela a l'air cool ... Pourriez-vous l'expliquer: D
Beta Decay

@BetaDecay fait!
FrodCube

1
Pour info, Ohm v2 (avec un peu de chance, bientôt) aura une meilleure gestion des entrées qu'auparavant!
Nick Clifford

@NickClifford cool! Je l'attends avec l'impatience! J'aime votre langue
FrodCube

1
Oooo ... Ohm est-il comme 05AB1E avec des commandes différentes?! Commence avec ferveur à lire les pages GitHub
Magic Octopus Urn

5

sed, 5

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

Les étiquettes sans nom sont une "fonctionnalité" non documentée dans sed qui fonctionne avec la version 4.2.2, mais qui pourrait ne plus fonctionner dans les futures versions.





4

V , 2 octets

òÙ

Vous ne pouvez pas essayer cela en ligne pour des raisons évidentes.

ò    'Recursively
 Ù   'Duplicate the current line downwards

TIO fonctionne réellement pendant 60 secondes, puis se termine et imprime le STDOUT jusqu'au point de terminaison tronqué aux premiers 128 Ko.
Magic Octopus Urn

1
Dans la mesure Voù la sortie se fait à l'intérieur d'une session nvim et n'est pas imprimée sur STDOUT jusqu'à ce qu'elle se termine, TIO tue la session et ne voit rien sur STDOUT. Je ne savais pas ce que vous avez dit, mais malheureusement, cela ne résout pas V
nmjcman101

1
Ahhhh ... C'est dommage, j'ai oublié les propriétés du V, je ne l'ai utilisé qu'une fois sans succès.
Magic Octopus Urn

3

Rubis, 18 17 12 + 2 = 14 octets

Courez avec le -ndrapeau.

loop{$><<$_}

Edit: Merci pour @sethrin pour le -ndrapeau!


Utilisez le -ndrapeau et sautez le gets.
canhascodez

@sethrin Nice one! Je ne connaissais pas ce drapeau!
Peter Lenkefi

3

AutoHotkey , 20 octets

OP n'a pas précisé comment la sortie devrait se produire, a dit seulement que cela devait arriver sans fin avec une nouvelle ligne après. AHK n'a pas été adapté pour l'interaction cmd. Ainsi, la sortie se produit à plusieurs reprises dans une ToolTipposition de souris:

info-bulle

loop
tooltip,%1%`n`n

J'aime la loopfonctionnalité d'AHK . looprépète le bloc suivant pour toujours, loop, 10le répéterait 10 fois. Parfois, cette fonctionnalité me manque dans d'autres langues comme Python.

Le caractère d'échappement dans AutoHotkey est `(il n'y a donc aucun problème avec les barres obliques inverses dans les chemins Windows). Pour une raison quelconque, une nouvelle ligne de fin est ignorée, elle est donc nécessaire deux fois. ( trayTippeut - être pas ce "bug" mais je ne peux pas le tester parce que courir avec wine)

ancienne réponse:

loop
msgbox,%1%

Je viens de réaliser que OP n'aimera probablement pas cette solution, la sortie se produit avec l'interaction de l'utilisateur et n'inclut aucune nouvelle ligne. Je chercherai une autre voie.


1
Eh bien, vous avez mon vote positif pour une solution créative
Skidsdev

3

LibreLogo , 33 octets

Code:

x=input " repeat [ label x bk 9 ]

Explication:

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

Résultat:

entrez la description de l'image ici


2

Python 2 , 25 octets

s=input()
while 1:print s

Essayez-le en ligne!

L'entrée devrait être un littéral Python (guillemets pour une chaîne, un crochet ou des parenthèses avec des éléments séparés par des virgules pour une liste / tuple, etc.)

Python 3 serait de +1 octet car printest une fonction, mais pourrait également faire une entrée brute sans la pénalité de 4 octets raw_input()dans Python 2.




2

Haskell, 14 octets

cycle.(++"\n")

Essayez-le en ligne!

Ajoutez une nouvelle ligne à l'entrée et faites-en une liste de copies infinies.

Version alternative, également 14 octets:

unlines.repeat

La version alternative est assez élégante :)
Conor O'Brien

2

Braingolf , 14 12 octets

#
V[R!&@v1+]

Essayez-le en ligne!

-2 octets grâce à totalementhumain

Explication

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

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

Fondamentalement, une fonction récursive qui génère la chaîne avant de s'appeler à nouveau. C'est mon deuxième article sur codegolf alors soyez gentil: p


2

Cubix , 6 octets

AN/qvo

Testez-le ici

  A
N / q v
  o
  • N/A Poussez Newline (10) et entrez dans la pile
  • v rediriger dans la boucle
  • o/q boucle qui sort un personnage et le pousse au bas de la pile en continu

J'allais supprimer l'indicateur EOI (-1) de la pile, mais il ne semble pas affecter la sortie, alors laissez-le économiser des octets.




1

MATL, 4 octets

`GDT

Essayez-le en ligne

Explication

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

1

C, 26 octets

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

Une fonction, fque prend une chaîne C de type en tant que paramètre, s. Le corps de la fonction boucle à plusieurs reprises, en passant la chaîne à la fonction de bibliothèqueputs , qui produit la chaîne dans la sortie standard (stdout) avec une nouvelle ligne de fin.

Des trucs assez simples. Le seul hack ici profite de default-int pour la valeur de retour et ne retourne pas réellement une valeur. Cela n'a pas d'importance dans ce cas, cependant, puisque la fonction ne revient jamais (elle continue à imprimer pour toujours)!

Essayez-le en ligne!


f(char*s){puts(s);f(s);}sauve quelques
nmjcman101


1

Java 8, 34 octets

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

Surpris, il n'y avait pas encore de réponse Java.

Essayez-le ici. (Attendez 60 secondes pour qu'il expire.)


vous n'avez pas besoin d'attendre qu'il expire, il atteindra le tampon de sortie maximum de 128 Ko beaucoup plus rapidement que cela: P
Skidsdev

@Mayube Peut-être, mais il fonctionne toujours Real time: 60.008 sselon la section Debug avant de produire le résultat (et donne deux avertissements: limite de 60 secondes dépassée et 128 Ko dépassés).
Kevin Cruijssen

1
TIO met également en cache les résultats, donc une fois qu'il a été exécuté et atteint la limite de temps, la sortie est mise en cache et sera simplement servie à ceux qui l'exécutent sans
recompiler

@Mayube True. Je ne savais pas que cela s'appliquait également aux autres. Je pensais que c'était une cache locale. Dans ce cas, vous pouvez ignorer le " (Attendez 60 secondes pour qu'il expire.) " Dans ma réponse. :) Mais si vous cochez le paramètre "désactiver le cache de sortie", vous verrez que cela prend ~ 60 secondes.
Kevin Cruijssen

1

Pyth, 2 octets

#

Malheureusement, je ne peux pas supprimer Q :(

Vous devez exécuter à partir de la ligne de commande comme celle-ci, afin que cela soit en concurrence:

python3 pyth.py -c "#
"

L'interprète a également été corrigé.


1

> <> , 16 octets

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

Essayez-le en ligne!

Comme mentionné dans les commentaires ci-dessous, ma première tentative peut avoir mal compris la question, donc la nouvelle solution de 16 octets a été faite, j'ai laissé l'original ci-dessous pour que les gens puissent voir.

> <> , 13 octets

<ov!?+1:i
oa<

Essayez-le en ligne!


Je pense qu'il y a eu un problème entre crochets: ce code renvoie "cette entrée suivie par (une nouvelle ligne sans fin)", tandis que la plupart des autres réponses donnent "(cette entrée suivie d'une nouvelle ligne) sans fin" ...
Pas un arbre

@Notatree, Merci d'avoir mentionné cela, j'ai mis à jour ma réponse pour respecter votre commentaire :)
Pélican bleu sarcelle

Bien, mon meilleur essai était de 17 octets!
Pas un arbre

@Notatree, j'ai changé la vérification dans la première ligne de 1 +?! V à 0)? V qui a sauvé un octet, quelle était votre solution, ce serait bien d'en voir plus> <> réponses :) - Je crois aussi avec certains miroirs astucieux, vous pourrez peut-être aussi supprimer les instructions de saut, mais vous ne l'avez pas encore compris.
Pélican turquoise

1
@Notatree, vous étiez vraiment proche des 16 octets également, changez votre deuxième ligne en \ \ puis déplacez votre dernière ligne autour de 1 en o> {: et vous l'auriez fait. le saut est juste pour couper des miroirs supplémentaires à travers les lignes mais le vôtre fonctionne tout aussi bien :)
Pelican sarcelle


1

Perl 5 , 27 octets

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

Essayez-le en ligne!


l'entrée sera toujours donnée, il se peut que ce soit une chaîne vide, vous devriez donc pouvoir le fairewhile(1){print"$ARGV[0]\n"}
Skidsdev

@Mayube - thx, réponse mise à jour.
tale852150

Bienvenue également à ppcg! J'ai corrigé la mise en forme de votre réponse pour vous, à l'avenir, je recommande totalement d'utiliser Try it online (lié dans la réponse modifiée) car cela facilite non seulement les tests, mais peut également vous donner une réponse ppcg entièrement formatée pour la publication
Skidsdev

@Mayube - merci, heureux d'être ici ...
tale852150

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.