Script qui génère un script qui imprime une entrée donnée


29

Écrivez un morceau de code qui prend une chaîne en entrée et génère un morceau de code dans le même langage qui, une fois exécuté, produira la chaîne d'entrée initiale.

Il doit être capable de gérer n'importe quelle combinaison de caractères AZ, az et 0-9.

Exemple en Python:

import sys
print "print('" + sys.argv[1]  + "')"

Étant donné l'entrée de testing123, il reviendra print('testing123').

Puisqu'il s'agit de , la réponse la plus courte en octets gagnera.


Peut-il s'agir d'une fonction?
2017 totalement humain

@manatwork (S), il l'a édité tout à l'heure.
NoOneIsHere

L'entrée doit-elle être une chaîne? Ou peut-il s'agir d'un entier?
Shaggy

Doit être capable de gérer à la fois les entrées d'entier et de chaîne.
Quartzic

2
Pouvons-nous produire une fonction selon les paramètres par défaut sur la méta?
JAD

Réponses:


28

pl , 0 octet

Code:

Essayez-le en ligne!

Explication:

Un programme vide dans pl est simplement un programme cat, produisant exactement la même chose que l'entrée.

En pl, tous les caractères ASCII sont essentiellement des variables, mais lorsque la variable n'existe pas (encore), pl suppose qu'ils font partie d'une chaîne.


3
Je savais qu'il y avait une langue comme celle-ci, mais je ne l'ai pas trouvée :(
Stephen

2
Dans la même veine, voir Cat, qui est un langage interprété comme Python. La plupart des distributions Linux modernes sont livrées avec un catinterprète. ;)
Quuxplusone

1
Cette solution fonctionne également pour /// si vous considérez que l'entrée est ajoutée au code source du programme (car /// n'a pas de mécanisme d'entrée). /// est l'une des nombreuses langues (je pense) où les caractères alphanumériques au début du programme sont simplement sortis.
Tanner Swett

6
Pouvez-vous publier la version non golfée? ;)
maxathousand

17

brainfuck , 56 55 33 octets

1 octet enregistré grâce à Gravitron, et 22 octets enregistrés grâce à Jo King!

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

Essayez-le en ligne!

La sortie nécessite un interpréteur qui encapsule le dépassement de mémoire et a EOI = 0. TIO a un tel interprète.

Explication

--[>+<++++++]initialise la bande avec un seul +.

La boucle d'entrée:

,[[->.<]>+++.--.-<,]
,                     take input
 [                ,]  while input is nonzero:
  [->.<]                  output `+` input times
        >+++.             output `.` (`+` + 3)
             --.          output `,` (`.` - 2)
                -<        restore `+` and move back to input

Autres solutions

Chaque ligne est sa propre solution.

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

1
+1. Je ne connais pas Brainfuck, mais je ne peux pas imaginer essayer de résoudre un problème comme celui-ci avec.
Jakob

Vous pouvez économiser 1 octet en remplaçant le +++++++++++++++par +++[>+++++<-]>(à partir des constantes brainfuck )
Graviton

@Graviton Oh, cool, merci
Conor O'Brien

vous ne l'avez pas remplacé dans l'explication
Destructible Lemon

4
Vous ne connaissez pas Brainfuck? Je vous apprendrai en un commentaire! Nous commençons sur une bande de 0, avec un pointeur sur une valeur. +incrémente la valeur, -décrémente la valeur, >déplace le pointeur vers la droite, <déplace le pointeur vers la gauche, ,lit l'entrée du pointeur sous forme de caractère ASCII, .sort la valeur du pointeur sous forme de caractère ASCII, [démarre une boucle et ]passe à la valeur correspondante [si le la valeur du pointeur n'est pas 0. Je suis mal à expliquer, mais c'est aussi facile que Brainfuck. Et Nice golf Conor!
Zacharý

13

Mornington Crescent , 27640 octets

Take Northern Line to Moorgate
Take Circle Line to Moorgate
Take Circle Line to Westminster
Take Circle Line to Hammersmith
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Barbican
Take Circle Line to Victoria
Take Circle Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Bayswater
Take District Line to Barons Court
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Cannon Street
Take Circle Line to Moorgate
Take Circle Line to Hammersmith
Take Circle Line to Cannon Street
Take Circle Line to Hammersmith
Take Circle Line to Cannon Street
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Mile End
Take District Line to Barking
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Bakerloo Line to Paddington
Take Circle Line to Royal Oak
Take Circle Line to Tower Hill
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Bank
Take Circle Line to Baker Street
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Baker Street
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Liverpool Street
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take District Line to Gunnersbury
Take District Line to Upminster
Take District Line to East Ham
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Sloane Square
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take Circle Line to Cannon Street
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to East Ham
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Plaistow
Take District Line to Mile End
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Barking
Take District Line to Bank
Take District Line to Barking
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Wood Lane
Take Circle Line to Liverpool Street
Take Circle Line to Bank
Take Circle Line to Liverpool Street
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take District Line to Barking
Take District Line to Bank
Take District Line to Barking
Take District Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Dagenham East
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Victoria
Take Circle Line to Bank
Take Circle Line to Victoria
Take Circle Line to Hammersmith
Take District Line to Mile End
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Upminster
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Victoria
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take District Line to Elm Park
Take District Line to Bank
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Bank
Take Central Line to Northolt
Take Central Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Barons Court
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Wimbledon
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Mile End
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Baker Street
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Bakerloo Line to Waterloo
Take Northern Line to Bank
Take Circle Line to Bank
Take Central Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Blackfriars
Take Circle Line to Bank
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Paddington
Take Circle Line to Bank
Take Circle Line to Victoria
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Victoria
Take Circle Line to Wood Lane
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take Circle Line to Paddington
Take Circle Line to Victoria
Take Circle Line to Victoria
Take Victoria Line to Euston
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Wood Lane
Take Circle Line to Paddington
Take Circle Line to Bank
Take Central Line to Northolt
Take Central Line to Bank
Take District Line to Southfields
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Baker Street
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Upminster
Take District Line to Ravenscourt Park
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Upminster
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Bank
Take Northern Line to Old Street
Take Northern Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Mile End
Take Central Line to Theydon Bois
Take Central Line to Mile End
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bank
Take Northern Line to Old Street
Take Northern Line to Bank
Take Circle Line to Bank
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Acton Town
Take Piccadilly Line to Cockfosters
Take Piccadilly Line to Acton Town
Take District Line to Acton Town
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Wood Lane
Take Circle Line to Paddington
Take Circle Line to Wood Lane
Take Circle Line to Bank
Take District Line to Elm Park
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take Circle Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Barbican
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Barbican
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to East Ham
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take District Line to Elm Park
Take District Line to Bank
Take Central Line to Chancery Lane
Take Central Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Bank
Take District Line to Plaistow
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Bank
Take Circle Line to Farringdon
Take Circle Line to Bank
Take Circle Line to Bank
Take Central Line to Mile End
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bank
Take Northern Line to Brent Cross
Take Northern Line to Bank
Take Circle Line to Bank
Take Central Line to Mile End
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Farringdon
Take Circle Line to Bank
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Farringdon
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Farringdon
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Southfields
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take District Line to Elm Park
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to Elm Park
Take District Line to Paddington
Take Circle Line to Blackfriars
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Royal Oak
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to Barons Court
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Blackfriars
Take Circle Line to Paddington
Take Circle Line to Blackfriars
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Royal Oak
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Farringdon
Take Circle Line to Paddington
Take Circle Line to Paddington
Take District Line to Southfields
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Embankment
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to East Ham
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take District Line to East Ham
Take District Line to Bank
Take District Line to Barking
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Barbican
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to West Ham
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take District Line to Barons Court
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Victoria
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Wood Lane
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Aldgate
Take Circle Line to Paddington
Take Circle Line to Aldgate
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take District Line to Barking
Take District Line to Paddington
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to Barking
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Moorgate
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Central Line to Chancery Lane
Take Central Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take District Line to Barking
Take District Line to Paddington
Take Circle Line to Westminster
Take Circle Line to Paddington
Take District Line to Plaistow
Take District Line to Bank
Take Circle Line to Moorgate
Take Circle Line to Hammersmith
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Bank
Take Circle Line to Paddington
Take Circle Line to Westminster
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Aldgate
Take Circle Line to Temple
Take Circle Line to Hammersmith
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Bank
Take Circle Line to Westminster
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Tower Hill
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Temple
Take Circle Line to Bank
Take Circle Line to Bayswater
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bayswater
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Embankment
Take Circle Line to Hammersmith
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Embankment
Take Northern Line to Angel
Take Northern Line to Bank
Take Central Line to Marble Arch
Take Central Line to Bank
Take Circle Line to Bank
Take Circle Line to Westminster
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Mile End
Take Central Line to Bank
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Tower Hill
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Embankment
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Piccadilly Line to Bounds Green
Take Piccadilly Line to Hammersmith
Take Circle Line to Embankment
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Cannon Street
Take Circle Line to Hammersmith
Take Circle Line to Cannon Street
Take District Line to Acton Town
Take District Line to Acton Town
Take Piccadilly Line to Bounds Green
Take Piccadilly Line to Holborn
Take Central Line to Holborn
Take Central Line to Bank
Take Circle Line to Hammersmith
Take District Line to West Ham
Take District Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Aldgate
Take Metropolitan Line to Chalfont & Latimer
Take Metropolitan Line to King's Cross St. Pancras
Take Victoria Line to Seven Sisters
Take Victoria Line to Euston
Take Victoria Line to Euston
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Stepney Green
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Stepney Green
Take Hammersmith & City Line to Moorgate
Take Circle Line to Moorgate
Take Metropolitan Line to Chalfont & Latimer
Take Metropolitan Line to Moorgate
Take Circle Line to Moorgate
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take Piccadilly Line to Russell Square
Take Piccadilly Line to Russell Square
Take Piccadilly Line to Acton Town
Take District Line to Acton Town
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Bank
Take District Line to East Ham
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take District Line to East Ham
Take District Line to Tower Hill
Take Circle Line to Bank
Take District Line to West Ham
Take District Line to Bank
Take Circle Line to Bank
Take Northern Line to Angel
Take Northern Line to Bank
Take Circle Line to Moorgate
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Barbican
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Moorgate
Take Circle Line to Bank
Take Northern Line to Morden
Take Northern Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take District Line to Mile End
Take District Line to Embankment
Take Northern Line to Kennington
Take Northern Line to Bank
Take Circle Line to Bank
Take Central Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Liverpool Street
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Aldgate
Take Metropolitan Line to Croxley
Take Metropolitan Line to Aldgate
Take Circle Line to Aldgate
Take Circle Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Gunnersbury
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to West Brompton
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Acton Town
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take District Line to Mile End
Take District Line to Acton Town
Take District Line to Acton Town
Take Piccadilly Line to Hounslow Central
Take Piccadilly Line to Acton Town
Take District Line to Acton Town
Take District Line to Mile End
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bank
Take Northern Line to Mornington Crescent

Essayez-le en ligne!

Explication

Tout d'abord, un petit rappel sur Mornington Crescent:

  • chaque station peut contenir une chaîne de longueur arbitraire ou un bigint
  • il y a aussi un accumulateur qui contient également une chaîne ou un bigint
  • toutes les stations commencent par leur propre nom comme valeur
  • au début, l'accumulateur contient l'entrée de votre programme
  • chaque fois que vous allez à une station, la valeur de la station et l'accumulateur sont échangés
  • certaines stations sont spéciales et remplacent ce comportement
  • la ligne que vous utilisez pour vous rendre à une station n'a pas d'importance
  • vous commencez à Mornington Crescent
  • pour terminer le programme, vous allez aussi à Mornington Crescent
  • à la fin, la valeur de l'accumulateur est imprimée

Étant donné que l'impression des chaînes est difficile (voir le programme "Hello, World!" De Martin Ender Mornington Crescent ), nous aurons besoin d'un modèle simple qui peut être utilisé pour produire des chaînes génériques. Étant donné que la longueur des programmes générés n'a pas d'importance, je me suis installé sur ceci:

Take Northern Line to Bank
Take Northern Line to Bank
Take District Line to Paddington

Nous devrons générer chaque caractère séparément et les concaténer, car l'approche de sous-chaîne utilisée par Martin est beaucoup plus difficile à mettre en œuvre dans le cas général. Paddington est la station qui effectue la concaténation des chaînes. Lorsque vous arrivez à Paddington, les événements suivants se produisent:

accumulator, paddington = paddington + accumulator, accumulator

Ce comportement est utilisé pour initialiser Paddington à la chaîne vide qui est supposée être l'entrée.

Take District Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Euston
Take Victoria Line to Euston
Take Northern Line to Bank

Allez à Seven Sisters, qui définit l'accumulateur à 7 et stockez-le dans la banque. La banque est le seul moyen de copier des valeurs - Hammersmith est une copie en lecture seule de la valeur de la banque.

Take District Line to Hammersmith
Take District Line to Cannon Street
Take District Line to Hammersmith
Take District Line to Cannon Street
Take District Line to Bank

Divisez 7 par 7 pour obtenir 1, un diviseur de toutes les valeurs ASCII que nous devons prendre en charge.

Take District Line to Hammersmith
Take District Line to Upminster

Pour chaque personnage, commencez par copier le 1 dans Upminster.

Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Upminster

Ajoutez-en d'autres si nécessaire.

Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Bank
Take District Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Bakerloo Line to Paddington
Take Bakerloo Line to Paddington
Take Bakerloo Line to Charing Cross
Take Northern Line to Embankment

Terminez en allant à Upminster une seule fois, pour conserver la nouvelle valeur dans l'accumulateur au lieu de la stocker à nouveau. Apportez-le à Charing Cross pour transformer la valeur ASCII en caractère et ajoutez-la à la chaîne. Les deux dernières lignes sont là parce que j'ai mal lu les spécifications, donc je vais m'arrêter ici et commencer par jouer mon programme.


(avertissement: je viens d'apprendre cette langue) À propos de la même approche à laquelle je peux penser (7/7 = 1). Mais pourquoi ne configurez-vous pas Upminister une seule fois au début du programme?
user202729


On dirait que j'ai mal compris la spécification . Mais c'est exactement ce qu'il y dit ... quelqu'un doit éditer le wiki.
user202729


7

Fusain, 1 octet

θ

Par défaut, une chaîne de caractères ASCII .. ~s'imprime simplement, il ne reste donc plus qu'à imprimer l'entrée.


J'allais ajouter cette même réponse. :-)
Charlie

@CarlosAlejo Eh bien, ce n'est pas comme s'il y avait une réponse différente ...
Neil

2
Eh bien, il y a : P
ASCII uniquement

@ Touché uniquement ASCII!
Neil

6

C (gcc) , 89 87 58 56 octets

Enregistré deux octets grâce à Jakob!

main(a,c)char**c;{printf("main(){puts(\"%s\");}",c[1]);}

Essayez-le en ligne!


"Il doit être capable de gérer n'importe quelle combinaison de caractères AZ, az et 0-9." Vous voudrez peut-être aller avec la stratégie d'échappement après tout.
Jakob

@Jakob ouais je viens de lire ça: /, merci
Conor O'Brien

Je venais également de terminer l'écriture de l'expression régulière escaper pour une solution Java lorsque j'ai lu cela. Bummer.
Jakob

@Jakob Ouais, pareil pour moi, mais avec eacal. RIP
Conor O'Brien

Vous pouvez utiliser putsdans le programme imprimé pour économiser 2 octets, non? Ou est-ce un problème qu'il ajoute une nouvelle ligne?
Jakob

5

Japt , 2 octets

iQ

Essayez-le en ligne!

iest une fonction qui insère une chaîne spécifiée à un index spécifié dans l'entrée. Qest une variable qui prend par défaut un guillemet ", et comme il n'y a pas d'index donné, c'est par défaut 0. Le résultat final est un guillemet inséré au début de la chaîne, que Japt termine automatiquement lors de l'exécution.

Cela fonctionne sur les chaînes contenant tout sauf ", {ou \bien que la chaîne soit bien sûr composée de caractères alphanumériques donc cela n'a pas d'importance.



4

MATLAB / Octave , 15 octets

@(t)['disp ',t]

Essayez-le en ligne!

J'ai complètement ignoré le fait que le programme n'a besoin que de gérer les caractères alphanumériques ou, surtout, n'a pas besoin de gérer les caractères d'espacement. Cela signifie que nous pouvons utiliser la syntaxe «commande», qui utilise beaucoup moins d'octets.

MATLAB, 27 octets

Pour être complet, voici une version qui peut gérer des entrées arbitraires:

@(t)['disp(',mat2str(t),41]

Définit une fonction anonyme prenant la chaîne tet la convertit en programme. Curieusement, cela ne fonctionne pas dans Octave, qui semble avoir des idées différentes sur ce qu'il mat2strfaut faire.


Je ne peux pas tester cela, mais je pense: @(t)['disp ',mat2str(t)]devrait fonctionner ...?
Stewie Griffin

@StewieGriffin Cela ne fonctionne pas car mat2strajoute des guillemets, qui ne sont pas nécessaires dans la syntaxe des commandes. J'ai eu la syntaxe de la fonction combinée avec mat2strpour gérer les espaces dans l'entrée, mais en relisant le défi, ce n'est pas vraiment nécessaire, réduisant le nombre d'octets presque de moitié. Merci!
Sanchises

Je pensais que les guillemets étaient nécessaires s'il y avait des espaces dans l'entrée mais je me trompais peut-être. Je n'ai pas remarqué que l'entrée était uniquement alphanumérique non plus ...
Stewie Griffin

Comme ça (non golfé).
Stewie Griffin

@StewieGriffin Vous avez raison, j'ai mal évalué le fonctionnement de la syntaxe des commandes. Cependant, la syntaxe des commandes semble pleine de surprises: essayez-la en ligne!
Sanchises

3

Befunge-98 (FBBI) , 21 16 12 octets

-5 octets grâce à NieDzejkob
-4 octets grâce à Jo King

#,~'',,',,'@

Essayez-le en ligne!

Sorties 't,'e,'s,'t,@pour une entrée detest

Comment?

Initialement, le pointeur se déplace vers l'est:

#,           # skips the next instruction
  ~          push a byte of input
   '',       push ' and print it
      ,      print the byte of input
       ',,   push , and print it 
          '@ push @ to the stack

S'il ne reste plus d'entrée, ~inverse la direction du pointeur:

 ,           print @
#            skip nothing
           @ terminate

3

Emojicode , 88 octets

🐖😍➡️🔡🍇🍎🍪🔤🏁🍇😀❌🔤🔤🐕🔤❌🔤🍉🔤🍪🍉

Essayez-le en ligne!

Contribution:

anyString

Sortie:

🏁🍇😀🔤anyString🔤🍉

Sortie de script:

anyString

2

QBIC , 7 octets

?@?@`+;

Explication

?           PRINT on the screen
 @  `       a literal
  ?@         question mark and at
     +;     and append the input

Exemple d'exécution

Command line: lala
?@lala

La sortie est un littéral de chaîne contenant l'entrée, précédé d'une PRINTcommande.


2

Lot 11 octets

Je suis sûr qu'il y a loin pour le réduire, mais c'est assez petit.

set/p=echo 

La ventilation:

set             ::Define new variable
   /p           ::Create prompt
     =          ::Define a variable in prompt
      echo      ::Prompt begins with 'echo '

En anglais:

L'utilisateur est invité à entrer une phrase principale echo. Ensuite, l'utilisateur peut taper quoi que ce soit, et le programme se termine (par exemple; echo hello world!). Cela nous laisse avec un programme qui, une fois exécuté, sortira hello world!.

Oui, l'espace est censé être là


Je ne connais pas le lot (et cela date d'il y a longtemps), mais cela semble faux. La echopartie ne serait-elle pas renvoyée en texte à la console et non à la sortie du programme?
Jakob

@Jakob suprose non, il est essentiellement fonctionnellement équivalent à l'exemple python donné dans le défi initial.
Graviton

Oups - ce que je voulais dire, c'est que je doute que le programme génère le texte que l'utilisateur tape. C'est probablement juste répercuté sur la console, non?
Jakob

@Jakob Right, qui équivaut à l'impression. L'exemple imprime une fonction d'impression tandis que le mien fait écho à une fonction d'écho.
Graviton

OK, mais l'exemple imprime l'ensemble du programme en sortie standard. Votre programme imprime uniquement echo en sortie standard. En fait, (je suppose) si l'entrée provient d'un fichier ou d'un canal, tout ce que vous voyez est l'invite. Ce type de sortie a-t-il été autorisé?
Jakob

2

V, 2 octets

ii

Dans Vim, ipasse en mode insertion et permet l'insertion de texte. Dans ce cas, il insère juste le idevant du texte d'entrée (pour créer le deuxième programme). V est compatible avec Vim, mais ajoute un implicite <esc>à la fin du programme, donc je n'ai pas besoin de m'en inquiéter ici.


2

PowerShell, 9 octets

"'$args'"

les guillemets simples ou doubles dans powershell peuvent être utilisés pour contenir des chaînes, mais seuls les guillemets doubles permettent l'expansion variable.

avec une entrée de fooce qui sortira 'foo'qui est un programme PowerShell valide qui sortfoo


2

Cubiquement , 87 octets

U3D1R3L1F3B1U1D3~:7+1(-1@3(-1%1)6:1+3111@6%1-31111+004@6:1+11111%6:1+45@6:1-1%6~:7+1)6 

Essayez-le en ligne!

Un port de ma réponse ici . Il existait déjà un défi pour prendre en entrée et en sortie le code Cubically qui a produit cette entrée, et j'avais une réponse dans Cubically alors ... profit?


Économisez quelques octets - supprimez les arguments de %6s et @6s; ils peuvent désormais être appelés implicitement. (Vous pouvez également le faire sur votre réponse sur le fil du cubificateur.)
MD XF



1

SOGL V0.12 , 2 octets

$+

Essayez-le ici! (attend l'entrée sur la pile et ,est donc ajoutée pour une facilité d'utilisation)

$pousse , +rejoint cela après l'entrée sur la pile.


Vous pouvez utiliser "" `pour ".
NoOneIsHere

@NoOneIsHere ouais, ça a du sens .. Utilisé partout ailleurs sauf là où c'est le plus utile .-.
dzaima

1

Perl 6 , 19 octets

say "say "~get.perl

Essayez-le

Cela devrait fonctionner pour toute entrée Unicode dans NFC


Pouvez-vous supprimer l'espace?
NoOneIsHere

@NoOneIsHere La suppression de l'un ou l'autre espace entraînerait une erreur de deux termes consécutifs. Perl 6 a des espaces blancs importants, mais il n'est significatif que dans la mesure où il doit être là ou ne pas être là. (il existe cependant des moyens de se retirer des deux)
Brad Gilbert b2gills

1

8ème , 34 37 octets

Code

: f >s "\"" tuck s:+ s:+ " ." s:+ . ;

Exemple

ok> "Print 42" f
"Print 42" .
ok> "Print 42" .
Print 42

1

PHP , 12 octets

<?=$argv[1];

Essayez-le en ligne!

Cela doit être exécuté à partir de la ligne de commande avec l'entrée comme argument de paramètre. Et oui, il affiche simplement la chaîne d'entrée, mais c'est du PHP valide: tout ce qui se trouve en dehors des <?php ?>délimiteurs est sorti non traité.

Voici le script produit par l'entrée «testing123» en action comme démonstration: Essayez-le en ligne!


1
cela ne fonctionnera pas très bien si la chaîne d'entrée contient <?php, faites attention;)
Andrea

@Andrea Lisez la question: "Il doit être capable de gérer n'importe quelle combinaison de caractères AZ, az et 0-9." Donc '<? Php' est une entrée invalide…
WebSmithery

1
aw, c'est trop facile :(
Andrea

1

MATL , 2 octets

&D

Essayez-le en ligne!

Entoure simplement la chaîne de guillemets en utilisant &D, ce qui est l'équivalent de MATL à MATLAB mat2str, une fonction spécialement conçue pour créer quelque chose qui, lorsqu'elle evalsera donnée , donnera la matrice d'origine (ou dans ce cas, une chaîne).

Le «programme» résultant n'est que la chaîne d'entrée entourée de guillemets, qui est ainsi poussée sur la pile et affichée implicitement.



1

Lot, 14 octets

@echo @echo(%*

Fonctionne également pour les caractères spéciaux s'ils sont cités à l'aide de "s plutôt que ^.


@echo.@echo.%*Serait peut -être plus correct? L'entrée peut être potentiellement vide.
Conor O'Brien

@ ConorO'Brien Eh bien, je n'ai pas besoin du premier .parce qu'il n'est jamais vide, et j'ai utilisé un (pour le deuxième cas parce que c'est plus fiable que ., mais merci pour les suggestions quand même!
Neil

np! J'aime juste la symétrie entre le @echo.s lol
Conor O'Brien

1

Ly , 14 octets

"\""&i"\"&o"&o

Essayez-le en ligne!

Explication

"\""&i"\"&o"&o

"\""           # push `"`
    &i         # take input
      "\"&o"   # push `"&o`
            &o # output stack
               # test -> "test"&o
               # "test"&o = push "test" and output stack


1

Brain-Flak , 92 68 octets

-22 octets grâce à Wheat Wizard

Comprend +2 pour -cr

{<>(((((()()()()()){}){}){})())<>{({}[()])<>((({}[()])()))<>}{}}<>

Essayez-le en ligne!

# For every character
{

   # Put ")(" on the off stack
   <>(((((()()()()()){}){}){})())<>

   # for 0 to the ASCII value of this character
   {({}[()])

      # Replace the ")" with "(" and add "))"
      <>((({}[()])()))<>

   # End for
   }{}

# end for and switch to the off stack for printing (in reverse order because of -r)
}<>


1

Carotte , 1 octet

#

Comment ça marche

# //Takes the input and places it onto the string stack
  //This is then output implicitly

{input} //The next program then consists of the input string
        //This is then placed directly onto the string stack
        //Then output implicitly

Une alternative, également à 1 octet, est:

$

Cela fonctionne de la même manière que ci-dessus mais ne prend que la première ligne d'entrée. Voir comme entrée ne sera jamais que très [A-Za-z0-9]bien.


Étant donné que la spécification prétend uniquement que vous devez gérer AZ, az et 0-9, n'est-ce pas en concurrence?
jkelm

@jkelm J'ai dû manquer cette partie, alors oui, c'est en compétition.
TheLethalCoder

Est-ce que cela fonctionnerait pour la saisie 01?
un spaghetto du

@quartata Je crois que oui, cela fait un moment que je n'ai pas utilisé Carrot.
TheLethalCoder
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.