Twój cel w tym kodzie golfa ma mieć dwa ciągi, language
a code
(jeśli kod golfed napisałeś tego jest multilinii, wtedy zmienna ta będzie wielowierszowego.) , A jedna liczba całkowita, bytes
. Reprezentują zmienne dla języka programowania, liczbę pobranych bajtów i sam kod.
Następnie sformatujesz go tak, jak robi to golfista.
Zmienna wyjściowa jest ciągiem wielowierszowym o nazwie answer
.
Możesz używać ciągów wielowierszowych na:
Jeśli przeszukujesz Przepełnienie stosu , powinieneś być w stanie znaleźć więcej języków programowania, które go obsługują.
Oto szablon znacznika wyjściowego. code
Zmienna jest w bloku kodu, a tam jest nagłówek drugiego poziomu.
## {language}, {bytes} bytes
{code}
Oto, jak wyglądałoby wyjście po wklejeniu do parsera Markdown.
{język}, {bajty} bajtów
{code}
Zakłada się, że zmienne są wypełnione już jako język, w którym kodowałeś swój kod golfowy, liczbę bajtów, jakie zajmuje, i rzeczywisty kod dla niego.
Oto kolejny przykład kodu wyjściowego, tym razem z wypełnionymi zmiennymi:
## JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Oto wersja jako cytat blokowy:
JavaScript, 1337 bajtów
document.getElementById("foo").innerHTML = bar;
Bajty można usunąć z kodu, jeśli używasz sposobu ustawiania tekstu <p>
elementu w HTML przez identyfikator result
, na przykład następujący kod JavaScript:
document.getElementById("result").innerHTML = answer;
Aby to zadziałało , należy również uwzględnić <p id="result"></p>
sekcję HTML JSFiddle .
Punktacja
Podobnie jak wszystkie pytania związane z golfem kodowym, kod wykorzystujący najmniej bajtów jest najlepszy.
źródło
{code}
kiedykolwiek będzie kodem wieloliniowym?language
,bytes
acode
wprowadzane są lub czy jest to Quine wariant gdzie te rzeczy powinny odpowiadać sam kod problemów. (A jeśli tak, to czy bezpośrednio lub pośrednio przeczytaniu że kod źródłowy jest dozwolone, a czy Quine wbudowanym ins są dozwolone.)code
mogą same zawierać źródła?code
że nie będzie multilinii, czy nie? Wskaż to w tekście wyzwaniaOdpowiedzi:
05AB1E , 21 bajtów
Kod:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online! .
źródło
Java, 70 bajtów
Zakłada, że
b[0]
jest to nazwa języka,b[1]
liczba bajtów ib[2]
kod.Kompilacja kosztuje 9 bajtów, co daje 79-bajtowy, niezależny program:
Równoważny program monolityczny ma długość 103 bajtów:
Monolityczny działa z argumentami wiersza poleceń, zakładając, że są one takie same, jak program niezależny:
Java (wyrażenie lambda),
5648 bajtówJest to
java.util.function.Function<String[], String>
.Żaden z tych programów / funkcji nie obsługuje łańcuchów wielowierszowych. Aby to zrobić, po prostu zamień
b[2]
i zaA[2]
pomocąb[2].replace("\n","\n ")
iA[2].replace("\n","\n ")
- robi to 23 bajty.źródło
\t
lub zastąpić 4 spacje po dwóch znakach nowej linii?\t
a nie 4 spacje?b->
.V , 24 bajty
Zauważ, że na końcu znajduje się spacja.
Program zakłada, że{code}
nie będzie na wielu liniach.Op wyjaśnił, że „kod” może być łańcuchem wielowierszowym. Ta 24-bajtowa wersja działa:
Ponieważ zawiera on znak niedrukowalny, oto jego wersja do odczytu:
Gdzie
<esc>
jest dosłowny znak ucieczki, np0x1B
.źródło
Python 3.5,
4033 bajtów:( -7 bajtów dzięki wyjaśnieniu Mego )
Anonimowa funkcja lambda, która przyjmuje dane wejściowe jako argumenty pozycyjne w formacie
<function name>(String, Number, String)
i generuje ciąg wielowierszowy.Wypróbuj online! (Ideone)
źródło
*f
i porzucisztuple
połączenie.TypeError: not enough arguments for format string
za każdym razem, gdy go uruchamiam.#
i%
.#
Potrzebna jest też przestrzeń między lambda a lambda, a przynajmniej tak mi się wydaje.JavaScript (ES6), 56 bajtów
Ponadto, dla śmiechu, oto odpowiedź, która sformatuje się dla mnie:
JavaScript (ES6), 68 bajtów
Wydrukuj wynik
f()
.źródło
(ES6)
. (Dlaczego Cᴏɴᴏʀ O'Bʀɪᴇɴ zawracał sobie głowę zmianą długości?)C #,
4038 bajtówC # lambda, gdzie dane wejściowe i wyjściowe są łańcuchami.
C #, 59 bajtów
Z obsługą odpowiedzi wieloliniowej.
C #, 71 bajtów
38 bajtowe rozwiązanie, które drukuje się samo
Wypróbuj je online
źródło
Mathematica, 40 bajtów
Funkcja anonimowa. Pobiera język, liczbę bajtów i program jako dane wejściowe i drukuje ciało do STDOUT.
źródło
Jolf,
2422 bajtówNie wiele tu do wyjaśnienia.
¦
oznacza interpolowane wejście.Wypróbuj tutaj! Dane wejściowe w łączu to:
Dane wejściowe są następujące:
źródło
MATL ,
2827 bajtów1 bajt zapisany dzięki sugestii @ NinjaBearMoneky
Wypróbuj online!
Blok kodu musi znajdować się w jednym wierszu.
Wyjaśnienie
źródło
Common Lisp, 57 bajtów
Dla zabawy poniżej znajduje się fragment kodu, który sam drukuje nagłówek.
Common Lisp, 146 bajtów
źródło
Rubinowy, 63 bajty
Wypróbuj online: http://codepad.org/EIn0Gw9M
źródło
hashmap , 29 bajtów.
(Napisałem ten post z programem, ale musiałem uciec \ n do \\ n)
Objaśnienie:
źródło
CJam ,
2623 bajtówDzięki @NinjaBearMonkey za usunięcie 3 bajtów!
Blok kodu musi znajdować się w jednym wierszu.
Wypróbuj online!
Wyjaśnienie
źródło
'#_Sl',Sl" bytes"N_S4*l
Pyke, 25 bajtów
Wypróbuj tutaj!
Lub
Pyke, 0 bajtów
Wypróbuj tutaj! - kliknij przycisk kopiuj odpowiedź;)
EDYCJA - To tylko funkcja strony internetowej, to oszustwo (a przynajmniej tak bym to uważał), ponieważ nigdy nie analizuje AST, a program internetowy prawdopodobnie nie jest uważany za część języka, ponieważ nie wchodzi w interakcje z tym językiem (mimo że działa interpreter Pyke)
źródło
Perl 5, 35 bajtów
Pełny program, który pobiera dane wejściowe jako argumenty wiersza poleceń w odwrotnej kolejności. Wymaga
-M5.01
, co jest bezpłatne.źródło
Emacs Lisp, 97 bajtów
Ponadto, ponieważ czasami trudno jest uciec od cudzysłowów, a co nie, przykład użycia, który kopiuje ciąg do schowka. (Oznacz region i użyj
M-:
)Emacs Lisp, 184 bajty
źródło