Сценарій, який видає сценарій, який друкує заданий вхід


29

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

Він повинен вміти обробляти будь-яку комбінацію символів AZ, az та 0-9.

Приклад в Python:

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

З огляду на вхід testing123, він повернеться print('testing123').

Оскільки це , найкоротша відповідь у байтах виграє.


Чи може це бути функцією?
totalhuman

@manatwork (S) він редагував це саме зараз.
NoOneIsHere

Повинен бути рядок? Або це може бути ціле число?
Shaggy

Потрібно вміти обробляти як цілі, так і рядкові входи.
Кварцик

2
Чи можемо ми вивести функцію відповідно до стандартних параметрів у мета?
JAD

Відповіді:


28

пл , 0 байт

Код:

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

Пояснення:

Порожня програма в pl - просто програма для котів, яка виводить точно так само, як і вхід.

У pl всі символи ASCII по суті є змінними, але коли змінна ще не існує, pl передбачає, що вони є частиною рядка.


3
Я знав, що є така мова, але не зміг її знайти :(
Стівен

2
У цьому ж ключі див. Cat, який є інтерпретованою мовою, як Python. Більшість сучасних дистрибутивів Linux поставляються з catперекладачем. ;)
Quuxplusone

1
Це рішення також працює для ///, якщо ви вважаєте, що вхід додається до вихідного коду програми (оскільки /// не має механізму введення). /// - одна з багатьох мов (я думаю), де буквено-цифрові символи на початку програми просто виводяться.
Tanner Swett

6
Чи можете ви розмістити версію, що не має волі? ;)
maxathousand

17

мозковий ебать , 56 55 33 байт

1 байт збережено завдяки Гравітрону, а 22 байти збережено завдяки Джо Кінгу!

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

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

Вихідні дані вимагають інтерпретатора, який завершує переповнення пам'яті та має EOI = 0. TIO має такого перекладача.

Пояснення

--[>+<++++++]ініціалізує стрічку з одиничним +.

Цикл введення:

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

Інші рішення

Кожен рядок - це власне рішення.

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

1
+1. Я не знаю Brainfuck, але не можу уявити, як намагатися вирішити подібну проблему.
Якоб

Ви можете зберегти 1 байт, замінюючи +++++++++++++++з +++[>+++++<-]>(від Brainfuck констант )
Гравітон

@Graviton О, здорово, спасибі
Conor O'Brien

ви не замінили його в поясненні
Руйнуючий лимон

4
Ви не знаєте Brainfuck? Я навчу вас в одному коментарі! Починаємо з стрічки 0's, із вказівником на значення. +збільшує значення, -зменшує значення, >переміщує вказівник праворуч, <переміщує вказівник вліво, ,зчитує введення вказівника як символ ASCII, .виводить значення вказівника як символ ASCII, [запускає цикл і ]переходить до відповідного, [якщо значення вказівника не є 0. Я погано роз'яснюю, але так просто Brainfuck. І хороший гольф Конор!
Zacharý

13

Морнінгтон Півмісяць , 27640 байт

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

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

Пояснення

По-перше, швидке оновлення Mornington Crescent:

  • кожна станція може містити рядок довільної довжини або bigint
  • також є акумулятор, який також містить струну або біґінт
  • всі станції починаються з власного імені як їх значення
  • на початку акумулятор містить вхід вашої програми
  • щоразу, коли ви переходите на станцію, змінюється значення станції та акумулятор
  • деякі станції особливі і переважають таку поведінку
  • лінія, якою ви користуєтесь, щоб дістатися до станції, не має значення
  • Ви починаєте з Морнінгтон Півмісяця
  • щоб закінчити програму, ви також переходите до Mornington Crescent
  • в кінці друкується значення акумулятора

Оскільки друк рядків важкий (див. Програму Морнінгтона Півмісяця Мартіна Ендера "Привіт, світ!" ), Нам знадобиться простий шаблон, який можна використовувати для виведення загальних рядків. Оскільки довжина створених програм не має значення, я зупинився на цьому:

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

Нам потрібно буде генерувати кожен символ окремо і об'єднувати їх, оскільки підстроковий підхід, використовуваний Мартіном, набагато складніше реалізувати в загальному випадку. Паддінгтон - станція, яка виконує конкатенацію рядків. Коли ви приїдете в Паддінгтон, трапляється таке:

accumulator, paddington = paddington + accumulator, accumulator

Така поведінка використовується для ініціалізації Падінгтона до порожнього рядка, який вважається вхідним.

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

Перейдіть до семи сестер, яка встановлює акумулятор на 7, і зберігайте його в банку. Банк - єдиний спосіб копіювання цінностей - Hammersmith - це лише копія вартості Банку.

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

Розділіть 7 на 7, щоб отримати 1, дільник усіх значень ASCII, які ми повинні підтримувати.

Take District Line to Hammersmith
Take District Line to Upminster

Для кожного символу почніть з копіювання 1 в 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

Додайте більше необхідних.

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

Закінчіть, перейшовши до Upminster лише один раз, щоб зберегти нове значення в акумуляторі, а не зберігати його знову. Візьміть його до Charing Cross, щоб перетворити значення ASCII в символ і додати його до рядка. Останні два рядки є, тому що я неправильно прочитав специфікацію, тому я зупинюсь тут і спершу перейду програму.


(відмова від відповідальності: я щойно вивчив цю мову) Про точно такий же підхід, про який я можу думати (7/7 = 1). Але чому ви не встановите Upminister лише один раз на початку програми?
користувач202729


Схоже, я неправильно зрозумів специфікацію . Але це саме те, що там написано ... комусь потрібно редагувати вікі.
користувач202729


7

Вугілля деревне, 1 байт

θ

За замовчуванням рядок символів ASCII .. ~просто друкує себе, тому залишається лише надрукувати введення.


Я збирався додати цю саму відповідь. :-)
Чарлі

@CarlosAlejo Ну не так, якби була інша відповідь ...
Ніл

2
Добре є : P
лише ASCII

@ ASCII лише Touché!
Ніл

6

C (gcc) , 89 87 58 56 байт

Збережено два байти завдяки Якобу!

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

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


"Він повинен вміти обробляти будь-яку комбінацію символів AZ, az та 0-9." Ви, можливо, захочете піти зі стратегією втечі.
Якоб

@Jakob Так, я просто прочитав це: /, дякую
Conor O'Brien

Я також щойно закінчив писати регулярний виразник для рішення Java, коли прочитав це. Бампер.
Якоб

@Jakob Так, те ж саме для мене, але з ескалом. RIP
Conor O'Brien

Ви можете використовувати putsв друкованій програмі, щоб зберегти 2 байти, правда? Або проблема в тому, що вона додає новий рядок?
Якоб

5

Japt , 2 байти

iQ

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

iце функція, яка вставляє вказаний рядок із заданим індексом у вхід. Q- це змінна, яка за замовчуванням веде лапки ", а оскільки індекс не вказаний, це за замовчуванням 0. Кінцевий результат - це лапки, вставлені на початку рядка, які Japt автоматично закінчується під час запуску.

Це працює на рядках, що містять що-небудь, крім ", {або \, хоча, звичайно, рядок гарантовано складається з буквено-цифрових знаків, тому це не має значення.


4

Python 2 , 22 байти

print'print%r'%input()

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


2
Альтернативний 22-байтний розчин print'print'+`input()`.
notjagan

Це не працює. inputв Python 2 еквівалентно eval(raw_input()). Тож це повинно бути пітонічним виразом, щоб воно працювало.
Zizouz212

Так, це дозволено. --- Дозвольте мені знайти відповідну мета ...--- Ага, знайшов.
повністюлюдський


4

MATLAB / Октава , 15 байт

@(t)['disp ',t]

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

Я повністю не помітив того факту, що програмі потрібно лише обробляти буквено-цифрові символи, або, що важливо, не потрібно обробляти символи простору. Це означає, що ми можемо використовувати синтаксис 'команда', який використовує значно менше байтів.

MATLAB, 27 байт

Для повноти, ось версія, яка може обробляти довільне введення:

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

Визначає анонімну функцію, яка приймає рядок t, і перетворює її в програму. Цікаво, що це не працює в Octave, який, схоже, має різні уявлення про те, що mat2strробити.


Я не можу це перевірити, але думаю: чи @(t)['disp ',mat2str(t)]варто працювати ...?
Стюі Гріффін

@StewieGriffin Це не працює, оскільки mat2strдодає лапки, які не потрібні в синтаксисі команд. У мене був синтаксис функцій у поєднанні з mat2strобробкою пробілів на вході, але перечитуючи виклик, це насправді не потрібно, скорочуючи кількість рахунків майже навпіл. Спасибі!
Санчіз

Я вважав, що лапки потрібні, якщо у введенні є пробіли, але я можу помилитися. Я не помітив, що вхід був і буквено-цифровим…
Stewie Griffin


@StewieGriffin Ви праві, я неправильно оцінив спосіб роботи синтаксису команд. Однак синтаксис команд, здається, переповнений сюрпризами: спробуйте в Інтернеті!
Санчіз

3

Befunge-98 (FBBI) , 21 16 12 байт

-5 байт завдяки NieDzejkob
-4 байти завдяки Джо Кінгу

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

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

Виходи 't,'e,'s,'t,@для введенняtest

Як?

Спочатку вказівник рухається на Схід:

#,           # 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

Якщо введення більше не залишилося, ~повертає напрямок вказівника:

 ,           print @
#            skip nothing
           @ terminate


2

QBIC , 7 байт

?@?@`+;

Пояснення

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

Вибірка зразка

Command line: lala
?@lala

Вихід - це рядковий літерал, що містить вхід, який передує PRINTкоманді.


2

Batch 11 байт

Я впевнений, що немає, щоб зменшити його, але це досить мало.

set/p=echo 

Розбивка:

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

Англійською:

Користувача просять ввести головну фразу echo. Тоді користувач може вводити все, що завгодно, і програма припиняється (наприклад; echo hello world!). Це залишає нам програму, яка при запуску буде видавати hello world!.

Так, передбачається, що пробіли там будуть


Я не знаю партії (і це здавна), але це виглядає неправильно. Чи не echoбуде фрагмент тексту перегукується з консоллю, а не програмою?
Якоб

@Jakob suprosingly ні, він по суті функціонально еквівалентний прикладу python, наведеному в початковому виклику.
Гравітон

На жаль, я мав на увазі те, що я сумніваюся, що програма видає текст, який користувачі вводять. Це, мабуть, просто перегукується з консоллю, правда?
Якоб

@Jakob Right, що еквівалентно друку. На прикладі друкується функція друку, в той час як міна перегукується з функцією ехо.
Гравітон

Гаразд, але приклад виводить всю програму на стандартну. Ваша програма друкує лише echo стандартні. Насправді, (я припускаю), якщо вхід надходить з файлу або труби, все, що ви бачите, - це підказка. Чи дозволений такий вихід?
Якоб

2

V, 2 байти

ii

У Вім, i змінюється режим вставки та дозволяє вставляти текст. У цьому випадку він просто вставляє iперед вхідним текстом (для створення другої програми). V сумісний з Vim, але додає неявно <esc>до кінця програми, тому мені тут не потрібно турбуватися про це.


2

PowerShell, 9 байт

"'$args'"

Одиничні або подвійні лапки в powerhell можуть бути використані для містять рядки, але лише подвійні лапки дозволяють змінювати розширення.

з введенням fooцього буде виводитися, 'foo'що є дійсною програмою, яка виводитьfoo


2

Кубічно , 87 байт

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 

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

Порт моєї відповіді тут . Вже існувало завдання взяти вхід і вихід Кубічний код, який виробляв цей вхід, і я мав відповідь в кубічній формі так ... прибуток?


Збережіть кілька байтів - видаліть аргументи з %6s і @6s; їх тепер можна назвати неявно. (Ви також можете зробити це у своїй відповіді на кубіфікатор.)
MD XF



1

SOGL V0.12 , 2 байти

$+

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

$штовхає , +приєднується до цього після введення на стеку.


Ви можете використовувати "" `для ".
NoOneIsHere

@NoOneIsHere Так, це має сенс .. Використовували його скрізь, крім випадків, коли це найкорисніше .-.
dzaima

1

Perl 6 , 19 байт

say "say "~get.perl

Спробуй це

Це має працювати для будь-якого вводу Unicode в NFC


Чи можете ви вилучити простір?
NoOneIsHere

@NoOneIsHere Видалення будь-якого простору призведе до помилки у два терміни. Perl 6 має значний пробіл, але він важливий лише тим, що він або повинен бути там, або не повинен бути там. (Є способи відмовитись від обох)
Бред Гілберт b2gills


1

PHP , 12 байт

<?=$argv[1];

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

Це потрібно запустити з командного рядка з введенням як аргумент параметра. І так, він просто виводить рядок введення, але це дійсно PHP: все, що знаходиться поза<?php ?> роздільниками, виводиться необробленим.

Ось сценарій, створений на основі введення 'testing123' як демонстрація: Спробуйте в Інтернеті!


1
це не спрацює, якщо вхідний рядок містить <?php, пам'ятайте;)
Андреа,

@Andrea Прочитайте питання: "Він повинен вміти обробляти будь-яку комбінацію символів AZ, az та 0-9." Тож "<? Php" недійсний вхід…
WebSmithery

1
ах, це занадто просто :(
Андреа

1

MATL , 2 байти

&D

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

Просто загортайте рядок у лапки за допомогою &D загортайте , що є еквівалентом MATL MATLAB mat2str, функцією, спеціально створеною для створення чогось, що, коли eval'd, дасть початкову матрицю (або в цьому випадку рядок).

Отримана 'програма' - це лише рядок введення, загорнутий у лапки, який, таким чином, висувається на стек і неявно відображається.



1

Пакет, 14 байт

@echo @echo(%*

Працює і для спеціальних символів, якщо вони цитуються за допомогою "s, а не ^.


Можливо, @echo.@echo.%*було б правильніше? Вхід може бути порожнім.
Conor O'Brien

@ ConorO'Brien Ну, мені не потрібен перший, .тому що він ніколи не порожній, і я використовував (другий випадок, тому що це надійніше ., але все-таки дякую за пропозиції!
Ніл

нп! Мені просто подобається симетрія між @echo.s lol
Conor O'Brien



1

Брейн-Флак , 92 68 байт

-22 байти завдяки пшеничному майстру

Включає +2 для -cr

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

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

# 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

Морква , 1 байт

#

Як це працює

# //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

Альтернативою, також на 1 байт, є:

$

Це працює так само, як описано вище, але бере лише перший рядок введення. Бачити як вхід буде лише колись [A-Za-z0-9]це добре.


Враховуючи специфікацію лише тверджень, що вам потрібно обробляти AZ, az і 0-9, чи не це конкурує?
jkelm

@jkelm Я, мабуть, пропустив цю частину, то так, це змагається.
TheLethalCoder

Це буде працювати для введення 01?
спагетто

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