Создайте шаблон уценки для вашего сообщения


19

Ваша задача проста: написать программу (или функцию), которая не требует ввода и выводит что-то вроде этого:

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

Где *name*имя используемого вами языка, *length*количество байтов в вашем коде и *code*исходный код вашей программы. Если *code*содержит несколько строк, перед каждой строкой должно быть четыре пробела.

Вот пример реализации размером 124 байта в Python 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)))

Выход:

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

Который в Markdown это:

Python 3, 124 байта

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)))

Это , поэтому выигрывает самый короткий ответ (в байтах).


3
Я почти уверен, что это дуп, но не могу найти старую ...
Дада


1
Я бы сказал, что это достаточно отличается от этого, потому что он генерирует один для себя. Идея похожа, но вам нужно написать Quine для этого.
Esolanging Fruit

Должны ли мы принять стандартные правила Quine (например, не открывать собственный код и не читать его)?
Габриэль Бенами

@GabrielBenamy Да.
Esolanging Fruit

Ответы:


8

RProgN 2, 28 байт

«"  %s"F"#RProgN 2, 28 Bytes"

2
Как, это не серьезный претендент и подлежит удалению. Пожалуйста, ответьте на ваш ответ.
Деннис

1
@ Деннис Гольф.
ATaco

2
Ницца! Точка после подсчета байтов не требуется, но перед кодом должно быть четыре пробела (или табуляция).
Деннис

5

Недогрузка, 48 байтов

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

Сообщение точно так же, как произведено кодом. Quine поддерживает полезную нагрузку (размещает полезную нагрузку после финальной S), что делает его истинным quine по одному широко используемому определению, но использует строку eval (при этом строка eval - единственный способ сделать цикл в Underload это довольно фундаментально для языка).

После обсуждения quines недогрузки в чате, мы решили, что это также quine по другим широко используемым определениям; :^в конце программы кодируются :^немного раньше, и , таким образом , одна часть программы кодирует другую часть.

2
Вы можете обсудить я п НЕДОГРУЗКИ quines? (Cool!:aSS)Cool!:aSS
CalculatorFeline

1
@CalculatorFeline К сожалению, это не работает из-за (!).
Esolanging Fruit


1

сетчатый, 58 байт

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

Попробуйте онлайн!

Объяснение: :cтолкает строку с одним символом c. При этом строится строка «## reticular, 58 bytes», обратная посимвольная Oперестановка стека и выводится все, включая строку, захваченную первоначальной кавычкой.


1

CJam, 33 байта

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

Работает очень похоже на ответ Underload.

Трассировка стека ( Nпредставляет \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>

1

V, 25 байтов

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

(Это не учитывается в сгенерированной уценке, потому что мне нравится давать объяснения для моего кода: P)

Вот hexdump, так как исходный код содержит непечатаемые / не ASCII символы:

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

Этот ответ является просто тривиальной модификацией стандартной расширяемой V-формы .

Объяснение:

ñ                                   " 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 ÿ)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.