Skrypt, który wypisuje skrypt, który wypisuje dane wejściowe


29

Napisz fragment kodu, który pobiera ciąg wejściowy i wysyła fragment kodu w tym samym języku, który po uruchomieniu wyświetli początkowy ciąg wejściowy.

Musi być w stanie obsłużyć dowolną kombinację znaków AZ, az i 0-9.

Przykład w Pythonie:

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

Biorąc pod uwagę wejście testing123, wróci print('testing123').

Ponieważ jest to , wygra najkrótsza odpowiedź w bajtach.


Czy to może być funkcja?
całkowicie ludzki,

@manatwork (S) właśnie to zredagował.
NoOneIsHere

Czy dane wejściowe muszą być ciągiem? Czy może to być liczba całkowita?
Shaggy

Musi być w stanie obsłużyć zarówno liczby całkowite, jak i łańcuchowe.
Kwarcowy

2
Czy możemy wyprowadzić funkcję według defauts na meta?
JAD

Odpowiedzi:


28

pl , 0 bajtów

Kod:

Wypróbuj online!

Wyjaśnienie:

Pusty program w pl jest po prostu programem cat, wyświetlającym dokładnie to samo co wejście.

W pl wszystkie znaki ASCII są zasadniczo zmienne, ale gdy zmienna jeszcze nie istnieje (jeszcze), pl zakłada, że ​​są one częścią ciągu.


3
Wiedziałem, że istnieje taki język, ale nie mogłem go znaleźć :(
Stephen

2
W tym samym duchu zobacz Cat, który jest interpretowanym językiem, takim jak Python. Większość współczesnych dystrybucji Linuksa jest dostarczana z cattłumaczem. ;)
Quuxplusone

1
To rozwiązanie działa również w przypadku ///, jeśli uważasz, że dane wejściowe są dołączane do kodu źródłowego programu (ponieważ /// nie ma mechanizmu wprowadzania). /// jest jednym z wielu języków (chyba), w których znaki alfanumeryczne na początku programu są po prostu wyprowadzane.
Tanner Swett,

6
Czy możesz opublikować wersję bez golfa? ;)
maxathousand

17

pieprzenie mózgu , 56 55 33 bajtów

1 bajt zapisany dzięki Gravitron, a 22 bajty zapisane dzięki Jo King!

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

Wypróbuj online!

Wyjście wymaga interpretera, który otacza niedomiar pamięci i ma EOI = 0. TIO ma takiego tłumacza.

Wyjaśnienie

--[>+<++++++]inicjuje taśmę pojedynczym +.

Pętla wejściowa:

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

Inne rozwiązania

Każda linia jest własnym rozwiązaniem.

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

1
+1. Nie znam Brainfuck, ale nie wyobrażam sobie próby rozwiązania takiego problemu.
Jakob,

Można zapisać 1 bajt zastępując +++++++++++++++z +++[>+++++<-]>(Z stałych brainfuck )
graviton

@Graviton Och, fajnie, dziękuję
Conor O'Brien

nie zastąpiłeś go w wyjaśnieniu
Destructible Lemon

4
Nie znasz Brainfuck? Nauczę cię w jednym komentarzu! Zaczynamy od taśmy 0, ze wskaźnikiem do wartości. +zwiększa wartość, -zmniejsza wartość, >przesuwa wskaźnik w prawo, <przesuwa wskaźnik w lewo, ,odczytuje dane wejściowe wskaźnika jako znak ASCII, .wysyła wartość wskaźnika jako znak ASCII, [uruchamia pętlę i ]przeskakuje do odpowiedniego, [jeśli wartość wskaźnika nie jest 0. Nie potrafię tego wytłumaczyć, ale tak łatwo jest Brainfuck. I ładny golf Conor!
Zacharý

13

Mornington Crescent , 27640 bajtów

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

Wypróbuj online!

Wyjaśnienie

Po pierwsze, szybkie odświeżenie w Mornington Crescent:

  • każda stacja może zawierać łańcuch o dowolnej długości lub bigint
  • jest też akumulator, który również trzyma sznurek lub bigint
  • wszystkie stacje zaczynają się od własnej nazwy jako wartości
  • na początku akumulator zawiera dane wejściowe programu
  • za każdym razem, gdy idziesz do stacji, wartość stacji i akumulator są zamieniane
  • niektóre stacje są wyjątkowe i zastępują to zachowanie
  • linia, której używasz, aby dostać się na stację, nie ma znaczenia
  • zaczynasz w Mornington Crescent
  • aby zakończyć program, idź do Mornington Crescent
  • na końcu drukowana jest wartość akumulatora

Ponieważ drukowanie ciągów jest trudne (patrz program „Hello, World!” Martina Endera Mornington Crescent ), potrzebujemy prostego szablonu, którego można użyć do generowania ciągów ogólnych. Ponieważ długość generowanych programów nie ma znaczenia, zdecydowałem się na to:

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

Będziemy musieli wygenerować każdą postać osobno i połączyć je, ponieważ podejście substringowe stosowane przez Martina jest znacznie trudniejsze do wdrożenia w ogólnym przypadku. Paddington to stacja, która wykonuje konkatenację łańcuchów. Po przybyciu do Paddington dzieje się, co następuje:

accumulator, paddington = paddington + accumulator, accumulator

To zachowanie służy do inicjalizacji Paddington do pustego łańcucha, który przyjmuje się za dane wejściowe.

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

Idź do Seven Sisters, która ustawia akumulator na 7, i przechowuj go w banku. Bank jest jedynym sposobem kopiowania wartości - Hammersmith jest tylko do odczytu kopią wartości Banku.

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

Podziel 7 przez 7, aby otrzymać 1, dzielnik wszystkich wartości ASCII, które musimy wspierać.

Take District Line to Hammersmith
Take District Line to Upminster

Dla każdej postaci zacznij od skopiowania 1 do Upminstera.

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

Dodaj więcej, jeśli to konieczne.

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

Zakończ, przechodząc do Upminster tylko raz, aby zachować nową wartość w akumulatorze, zamiast ją ponownie przechowywać. Zabierz go do Charing Cross, aby zmienić wartość ASCII w znak i dołączyć ją do łańcucha. Istnieją dwie ostatnie linie, ponieważ źle odczytałem specyfikację, więc zatrzymam się tutaj i zacznę grać w golfa.


(zastrzeżenie: Właśnie nauczyłem się tego języka) O dokładnie takim samym podejściu, jakie mogę wymyślić (7/7 = 1). Ale dlaczego nie ustawisz Upminister tylko raz na początku programu?
user202729,


Wygląda na to, że źle zrozumiałem specyfikację . Ale dokładnie tak tam jest napisane ... ktoś musi edytować wiki.
user202729,


7

Węgiel, 1 bajt

θ

Domyślnie ciąg znaków ASCII .. ~po prostu drukuje się, więc pozostaje tylko wydrukować dane wejściowe.


Chciałem dodać tę samą odpowiedź. :-)
Charlie,

@CarlosAlejo Cóż, to nie jest tak, jakby była inna odpowiedź ...
Neil,

2
Cóż , jest : P
tylko ASCII

@ Touché tylko ASCII!
Neil

6

C (gcc) , 89 87 58 56 bajtów

Zaoszczędziłem dwa bajty dzięki Jakobowi!

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

Wypróbuj online!


„Musi być w stanie obsłużyć dowolną kombinację znaków AZ, az i 0–9.” W końcu możesz chcieć zastosować strategię ucieczek.
Jakob

@Jakob tak, właśnie przeczytałem, że: /, dzięki
Conor O'Brien

Właśnie skończyłem pisanie wyrażenia escaper dla rozwiązania Java, kiedy to przeczytałem. Bummer.
Jakob

@Jakob Tak, to samo dla mnie, ale z eacal. RIP
Conor O'Brien

Możesz użyć putsw drukowanym programie, aby zapisać 2 bajty, prawda? Czy jest to problem, że dodaje nową linię?
Jakob

5

Japt , 2 bajty

iQ

Wypróbuj online!

ijest funkcją, która wstawia określony ciąg pod określonym indeksem do danych wejściowych. Qjest zmienną, która domyślnie przyjmuje znak cudzysłowu ", a ponieważ nie podano żadnego indeksu, domyślnie jest to 0. Końcowym wynikiem jest znak cudzysłowu wstawiany na początku łańcucha, który Japt automatycznie kończy podczas uruchamiania.

Działa to na ciągach zawierających cokolwiek oprócz ", {lub \, choć oczywiście ciąg znaków składa się z znaków alfanumerycznych, więc nie ma to znaczenia.



4

MATLAB / oktawa , 15 bajtów

@(t)['disp ',t]

Wypróbuj online!

Całkowicie przeoczyłem fakt, że program musi obsługiwać tylko znaki alfanumeryczne, a co ważniejsze nie musi obsługiwać znaków spacji. Oznacza to, że możemy użyć składni „polecenia”, która zużywa znacznie mniej bajtów.

MATLAB, 27 bajtów

Dla kompletności, oto wersja, która może obsłużyć dowolne dane wejściowe:

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

Definiuje anonimową funkcję pobierającą ciąg znaków ti konwertuje go do programu. Co ciekawe, nie działa to w Octave, która wydaje się mieć różne pomysły na to, co mat2strnależy zrobić.


Nie mogę tego przetestować, ale myślę: @(t)['disp ',mat2str(t)]powinien działać ...?
Stewie Griffin,

@StewieGriffin To nie działa, ponieważ mat2strdodaje cudzysłowy, które nie są konieczne w składni komend. Miałem składnię funkcji połączoną z mat2strobsługą spacji na wejściu, ale przy ponownym odczytaniu wyzwania nie jest to właściwie konieczne, zmniejszając liczbę bajtów prawie o połowę. Dzięki!
Sanchises

Myślałem, że cudzysłowy są konieczne, jeśli na wejściu są spacje, ale mogę się mylić. Nie zauważyłem też, że dane wejściowe były tylko alfanumeryczne ...
Stewie Griffin


@StewieGriffin Masz rację, źle oceniłem sposób działania składni poleceń. Wydaje się jednak, że składnia poleceń jest pełna niespodzianek: Wypróbuj online!
Sanchises

3

Befunge-98 (FBBI) , 21 16 12 bajtów

-5 bajtów dzięki NieDzejkob
-4 bajtów dzięki Jo King

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

Wypróbuj online!

Wyjścia 't,'e,'s,'t,@dla wejściatest

W jaki sposób?

Początkowo wskaźnik przesuwa się na wschód:

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

Jeśli nie ma już więcej danych wejściowych, ~odwraca kierunek wskaźnika:

 ,           print @
#            skip nothing
           @ terminate

3

Emojicode , 88 bajtów

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

Wypróbuj online!

Wkład:

anyString

Wydajność:

🏁🍇😀🔤anyString🔤🍉

Wyjście skryptu:

anyString

2

QBIC , 7 bajtów

?@?@`+;

Wyjaśnienie

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

Przykładowy przebieg

Command line: lala
?@lala

Dane wyjściowe to literał łańcuchowy zawierający dane wejściowe, poprzedzony PRINTpoleceniem.


2

Partia 11 bajtów

Jestem pewien, że jest daleko, aby go zmniejszyć, ale to jest dość małe.

set/p=echo 

Podział:

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

Po angielsku:

Użytkownik jest proszony o wprowadzenie wiodącej frazy echo. Następnie użytkownik może wpisać cokolwiek, a program kończy działanie (np.; echo hello world!). Pozostaje nam program, który po uruchomieniu wyświetli hello world!.

Tak, białe znaki powinny tam być


Nie znam partii (a to już dawno temu), ale wygląda to źle. Czy echofragment nie byłby wysyłany echem do konsoli, a nie programowy wynik?
Jakob

@Jakob suprosingly no, zasadniczo jest funkcjonalnie równoważny przykładowi pytona podanemu w początkowym wyzwaniu.
Graviton,

Ups - miałem na myśli to, że wątpię, czy program wyświetla tekst, który wpisuje użytkownik. Prawdopodobnie odbiło się to echem na konsoli, prawda?
Jakob,

@Jobob Right, co odpowiada drukowaniu. Przykład drukuje funkcję drukowania, a moje echo - funkcję echa.
Graviton,

OK, ale przykład wypisuje cały program na standardowe wyjście. Twój program drukuje tylko echo na standardowym wyjściu. W rzeczywistości (zakładam, że jeśli dane wejściowe pochodzą z pliku lub potoku, zobaczysz tylko monit. Czy tego rodzaju wyniki są dozwolone?
Jakob

2

V, 2 bajty

ii

W Vimie przechodzi ido trybu wstawiania i umożliwia wstawianie tekstu. W takim przypadku po prostu wstawia iprzed tekstem wejściowym (aby utworzyć drugi program). V jest kompatybilny z Vimem, ale dodaje niejawny <esc>koniec programu, więc nie muszę się tym martwić.


2

PowerShell, 9 bajtów

"'$args'"

pojedyncze lub podwójne cudzysłowy w PowerShell mogą być używane do przechowywania ciągów, ale tylko podwójne cudzysłowy pozwalają na zmienną interpretację.

z wejściem footego wyjdzie, 'foo'który jest prawidłowym programem PowerShell, który wyprowadzafoo


2

Sześciennie 87 bajtów

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 

Wypróbuj online!

Port mojej odpowiedzi tutaj . Istniało już wyzwanie, aby pobrać dane wejściowe i wyjściowe Kod sześcienny, który wytworzył ten sygnał wejściowy, a ja miałem odpowiedź w Cubical, więc ... zysk?


Zapisz kilku bajtów - usunąć argumenty z %6S i @6S; można je teraz wywoływać niejawnie. (Możesz to również zrobić w odpowiedzi na wątek cubitatora.)
MD XF,




1

Perl 6 , 19 bajtów

say "say "~get.perl

Spróbuj

Powinno to działać dla każdego wejścia Unicode w NFC


Czy możesz usunąć przestrzeń?
NoOneIsHere

@NoOneIsHere Usunięcie dowolnej spacji spowodowałoby błąd dwóch terminów w wierszu. Perl 6 ma znaczną spację, ale jest znaczący tylko dlatego, że albo musi tam być, albo nie musi być. (istnieją jednak sposoby rezygnacji z obu)
Brad Gilbert b2gills,

1

8 , 34 37 bajtów

Kod

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

Przykład

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

1

PHP , 12 bajtów

<?=$argv[1];

Wypróbuj online!

Należy go uruchomić z wiersza poleceń z danymi wejściowymi jako argumentem parametru. I tak, po prostu wyprowadza ciąg wejściowy - ale to jest poprawne PHP: wszystko poza<?php ?> ogranicznikami jest przetwarzane nieprzetworzone.

Oto skrypt wygenerowany przez dane wejściowe „test123” w akcji jako demonstracja: Wypróbuj online!


1
to nie zadziała, jeśli ciąg wejściowy zawiera <?php, pamiętaj;)
Andrea

@Andrea Przeczytaj pytanie: „Musi być w stanie obsłużyć dowolną kombinację znaków AZ, az i 0-9”. Więc „<? Php” jest nieprawidłowym wejściem…
WebSmithery

1
aw, to zbyt proste :(
Andrea

1

MATL , 2 bajty

&D

Wypróbuj online!

Po prostu owija ciąg znaków w cudzysłów, używając &D, która jest odpowiednikiem MATLAB- mat2stra MATLAB- a, funkcji stworzonej specjalnie do tworzenia czegoś, co, gdy evald da pierwotną macierz (lub w tym przypadku ciąg).

Wynikowy „program” jest po prostu łańcuchem wejściowym zawiniętym w cudzysłów, który jest w ten sposób wypychany na stos i domyślnie wyświetlany.



1

Partia, 14 bajtów

@echo @echo(%*

Działa również dla znaków specjalnych, jeśli są one cytowane za pomocą "s zamiast ^.


Być może @echo.@echo.%*byłoby bardziej poprawne? Dane wejściowe mogą być potencjalnie puste.
Conor O'Brien,

@ ConorO'Brien Cóż, nie potrzebuję pierwszego, .ponieważ nigdy nie jest pusty, i użyłem (drugiego, ponieważ jest to bardziej niezawodne niż ., ale i tak dzięki za sugestie!
Neil,

np! Podoba mi się symetria między @echo.lol
Conor O'Brien

1

Ly , 14 bajtów

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

Wypróbuj online!

Wyjaśnienie

"\""&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 bajtów

-22 bajtów dzięki Wheat Wizard

Obejmuje +2 za -cr

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

Wypróbuj online!

# 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

Marchewka , 1 bajt

#

Jak to działa

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

Alternatywą, również przy 1 bajcie, jest:

$

Działa to tak samo jak powyżej, ale pobiera tylko pierwszy wiersz danych wejściowych. Patrząc na dane wejściowe, zawsze będzie [A-Za-z0-9]to w porządku.


Biorąc pod uwagę, że specyfikacja mówi tylko, że musisz obsługiwać AZ, az i 0-9, czy nie jest to konkurencyjne?
jkelm

@jkelm Musiałem przegapić tę część, to tak, to jest konkurencja.
TheLethalCoder

Czy to zadziała w przypadku danych wejściowych 01?
spaghetto

@ quartata Wierzę, że minęło trochę czasu, odkąd użyłem Marchewki.
TheLethalCoder
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.