Wygeneruj szablon Markdown dla swojego postu

19

Twoje zadanie jest proste: Napisz program (lub funkcję), który nie pobiera danych wejściowych i generuje coś takiego:

## *name*, *length* bytes
    *code*

Gdzie *name*jest nazwa używanego języka, *length*liczba bajtów w kodzie i *code*kod źródłowy programu. Jeśli *code*zawiera wiele linii, ma cztery spacje przed każdą linią.

Oto 124-bajtowa implementacja przykładowa w Pythonie 3:

s = "## Python 3, 124 bytes{2}    s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))"
print(s.format(s,chr(34),chr(10)))

Dane wyjściowe to:

## Python 3, 124 bytes
    s = "## Python 3, 124 bytes{2}    s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))"
    print(s.format(s,chr(34),chr(10)))

Który w Markdown to:

Python 3, 124 bajty

s = "## Python 3, 124 bytes{2}    s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))"
print(s.format(s,chr(34),chr(10)))

To jest , więc wygrywa najkrótsza odpowiedź (w bajtach).

Esolanging Fruit
źródło
3
Jestem prawie pewien, że to duplikat, ale nie mogę znaleźć starego ...
Dada
Powiązane
Adnan,
1
Powiedziałbym, że to wystarczająco różni się od tego, ponieważ generuje jedno dla siebie. Pomysł jest podobny, ale musisz napisać quine dla tego.
Esolanging Fruit
Czy powinniśmy zakładać standardowe reguły quine (np. Nie otwierając własnego kodu i nie czytając go)?
Gabriel Benamy,
@GabrielBenamy Tak.
Esolanging Fruit

Odpowiedzi:

8

RProgN 2, 28 bajtów

«"  %s"F"#RProgN 2, 28 Bytes"
ATaco
źródło
2
W tej chwili nie jest to poważny konkurent i nie może zostać usunięty. Proszę golfa swoją odpowiedź.
Dennis
1
@Dennis Golfed.
ATaco
2
Ładny! Kropka po liczbie bajtów nie wydaje się być wymagana, ale przed kodem powinny znajdować się cztery spacje (lub tabulator).
Dennis
5

Niedociążenie, 48 bajtów

(#Underload, 48 bytes
)(~:S(    ):S*aSaS(:^)S):^

źródło
Post jest dokładnie zgodny z kodem. Quine jest zdolne do obciążenia (umieść ładunek po końcowym S), dzięki czemu jest prawdziwym quine według jednej powszechnie używanej definicji, ale używa eval ciągu (to znaczy, eval ciągu jest jedynym sposobem wykonania pętli w niedociążeniu ; jest to dość fundamentalne dla języka).
Po dyskusji w quinach o niedociążeniu na czacie zdecydowaliśmy, że jest to również quine w innych powszechnie używanych definicjach; :^na koniec programu jest kodowany przez :^nieco wcześniej, a tym samym jedną część programu koduje inną część.
2
Można dyskutować : i n UNDERLOAD quines? (Cool!:aSS)Cool!:aSS
CalculatorFeline
1
@CalculatorFeline Niestety, to nie działa z powodu (!).
Esolanging Fruit
2

Python 2, 58 bajtów

_='## Python 2, 58 bytes\n    _=%r;print _%%_';print _%_
Erik the Outgolfer
źródło
Treść tego posta jest dokładnie taka, jak wydrukowano w kodzie.
Erik the Outgolfer
1

siatka, 58 bajtów

"'34'c: 4*91+c:s:e:t:y:b: 85: :,:r:a:l:u:c:i:t:e:r: :#dqO;

Wypróbuj online!

Objaśnienie: :cwypycha łańcuch jednoznakowy c. To buduje ciąg „## reticle, 58 bajtów”, znak wstecz po znaku, odwraca stos i Owypisuje wszystko, w tym ciąg przechwycony przez początkowy cytat.

Conor O'Brien
źródło
1

CJam, 33 bajty

{"## CJam, 33 bytes"N@S4*\"_~"}_~

Działa bardzo podobnie do odpowiedzi Niedociążenie.

Ślad stosu ( Nreprezentuje \n)

{"## CJam, 33 bytes"N@S4*\"_~"}
{"## CJam, 33 bytes"N@S4*\"_~"} {"## CJam, 33 bytes"N@S4*\"_~"}
{"## CJam, 33 bytes"N@S4*\"_~"} "## CJam, 33 bytes"
{"## CJam, 33 bytes"N@S4*\"_~"} "## CJam, 33 bytes" N
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"}
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"} " "
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"} " " 4
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"} "    "
"## CJam, 33 bytes" N "    " {"## CJam, 33 bytes"N@S4*\"_~"}
"## CJam, 33 bytes" N "    " {"## CJam, 33 bytes"N@S4*\"_~"} "_~"
<implicit output>
Esolanging Fruit
źródło
1

V, 25 bajtów

ñi#V, 25 bytes<esc>o´ Ñ<esc>~"qpx

(Nie jest to uwzględniane w generowanym przecenianiu, ponieważ lubię podawać wyjaśnienia do mojego kodu: P)

Oto zrzut heksowy, ponieważ kod źródłowy zawiera znaki niedrukowalne / inne niż ASCII:

00000000: f169 2356 2c20 3235 2062 7974 6573 1b6f  .i#V, 25 bytes.o
00000010: b420 d11b 7e22 7170 78                   . ..~"qpx

Ta odpowiedź jest po prostu banalna modyfikacja standardowego V rozszerzalny Quine'a .

Wyjaśnienie:

ñ                                   " Run the following code one time, storing it in
                                    " register 'q'
 i                                  "   Enter insert mode
  #V, 25 bytes<esc>                 "   And insert the header
                   o                "   Open up a newline, and enter insert mode again
                    ´ Ñ             "   Enter four spaces, then a 'Ñ' character.
                                    "   (The reason we insert it uppercase, is because
                                    "   lowercase would end the loop now)
                       <esc>        "   Return to normal mode
                            ~       "   Toggle the case of the char under the cursor ('Ñ')
                             "qp    "   Paste the contents of register 'q' (this is the
                                    "   same as the entire program minus the initial 'ñ',
                                    "   followed by a 'ÿ' character because V is weird)
                                x   "   Delete the last character (the ÿ)
DJMcMayhem
źródło
1

JS, 50 49 27 30 bajtów

f=_=>`#JS, 30 bytes\n    f=`+f

Spróbuj

f=_=>`#JS, 30 bytes\n    f=`+f
console.log(f())

Kudłaty
źródło