Зворотні лапки-квінти


29

Перспектива цього виклику:

  • Якщо ваша програма працює нормально, весь код у мовленнєвих позначках ( "- подвійні лапки) повинен бути надрукований.
  • Якщо ваша програма загорнута у подвійні лапки (у свою чергу перевертаючи мовленнєві позначки), код, який зазвичай не є в лапках, повинен бути надрукований.

Наприклад:

Скажімо, у вас є такий код:

fancyStuff("myCode"); "I like".isGreat();

Якщо я запускаю його, я очікую виходу:

myCode
I like

Однак, якби я загорнув це в лапки, я отримав би:

"fancyStuff("myCode"); "I like".isGreat();"

Коли цей код запускається, очікуваний вихід буде:

fancyStuff(
); 
.isGreat();

Очевидно, що наведений вище приклад не є функціональною відповіддю ні в одній мові. Ваше завдання - написати код, який виконує таким чином.

Правила

  • Застосовуються стандартні лазівки.
  • Надруковані значення, як у цитованих, так і у цитованих формах, повинні бути не порожніми або складатися виключно з пробілу. Це також означає, що всі програми повинні містити принаймні один набір цитат.
  • Однак, пробіл / попередній пробіл дозволений.
  • Не дивлячись на власний код, потрібні назви файлів тощо.
  • Неперевершені цитати заборонено
  • Якщо є декілька рядків, вони можуть бути надруковані як нові рядки (як у прикладі), або яким-небудь іншим способом, прочитаним людиною - без масивів чи об'єктів
  • Це , тому найкоротша відповідь у байтах виграє.

Чи дозволені безперебійні цитати, і якщо так, то як з ними оброблятись?
мінус сім

3
@GezaKerecsenyi Отже, потрібен роздільник, чи ми можемо просто об'єднати рядки?
Ерік Аутгольфер

9
Як масив не є читаним людиною форматом?
Пшеничний майстер

4
Потрібно виводити рядки в тому ж порядку, який вони відображаються в нашому коді?
Кудлатий

1
Я думаю, що це було б трохи складніше, якби вам довелося надрукувати все, що не було в цитатах
Джо Кінг,

Відповіді:


28

Python 2 , 20 байт

print";print'print'"

-7 байт завдяки tsh

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


Стара відповідь:

Python 2 , 27 байт

'';print";print 2*"'';print

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

Потяг думки за цією відповіддю:

Почніть з простого друку, адже нам потрібно щось надрукувати .

print"a"

Нам також потрібно надрукувати щось у перевернутому випадку, тобто. мати принт всередині цитат.

print"print"

На цей момент неперевернутий випадок досить непоганий. Давайте зосередимось на перевернутому випадку. Тепер ми почнемо з рядка print, який не може негайно слідувати заявою про друк. Зафіксуємо це крапкою з комою.

print";print"

Хороший матеріал. За винятком того, що перевернутий код насправді нічого не друкує. Нам потрібно буде надрукувати printна початку, тому що він закінчується цитатами, а також друкувати все, що виходить після другої цитати, оскільки воно також закінчується цитатами. Очевидним способом цього є додавання printта множення останнього рядка на 2.

print";print 2*"print

Тепер перевернутий код працює нормально, хоча ми повинні насторожено ставитися до того, що розділ перед першою цитатою та розділ після другої цитати повинні зберігатися однаковими протягом майбутніх змін. Щодо неінвертованого коду, він видає синтаксичну помилку - ще раз нам потрібно ввести крапку з комою для окремих виразів.

;print";print 2*";print

Python не дуже любить зовнішній вигляд цього самотнього крапки з комою, тому ми повинні задовольнити голод змії з двома однаковими виразами без вказівки, вставленими перед першою крапкою та останньою комою. Більшість виразів спрацьовуватимуть добре у першому випадку, але у другому випадку він повинен слідувати print";print 2*"в неінвертованому коді, нічого не порушуючи. Ми можемо використовувати '', яке просто об'єднується з попереднім рядком.

'';print";print 2*"'';print

5
print(";print('print()');")теж 27 байт, а також Python 3.
tsh

2
@tsh Цей код розкриває 20-байтове рішення Python 2, яке повинно бути очевидним заднім числом, дуже приємно!
мінус сім

19

CSS, 66 байт

body:after{content:"{}body:after{content:'body:after{content:}'}"}

"body:after{content:"{}body:after{content:'body:after{content:}'}"}"

CSS може вирішити не так багато питань ...


Здається, це body:afterтакож працює на деяких реалізаціях?
Шиеру Асакото

@ShieruAsakoto Ви маєте рацію. :afterдоступна в більшості браузерів для забезпечення сумісності причини
TSH

@Shaggy Але важко визначити, як працює "загортання вихідного коду з цитатами", коли надаються і HTML, і CSS.
tsh

@tsh Це добре - я не вказував про кілька файлів у правилах, оскільки не очікував такої унікальної відповіді!
Geza Kerecsenyi

10

HQ9 + [див. Примітки нижче] , 1016 байт

"Привіт Світ""""""""""""""""""""""""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """"""""""""""""""""""""""""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """"""""""""""""""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """"""""""""""""""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """"""""""""""""""""""""""""""""""""""Привіт Світ"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """"""""""""""""""""""""""""""""""""""Привіт Світ"""""""""""""""""""""""""""""""""""Привіт Світ"""""""""""""""""""""""""""""""""""Привіт Світ

Скористайтеся реалізацією на https://esolangs.org/w/index.php?title=HQ9%2B&oldid=59995 та компілюйте інтерпретатор з MinGW GCC 5.3.0 для Windows. Я не впевнений, чи працює він з іншою версією компілятора, оскільки для припинення програми потрібна невизначена поведінка C. Буфер має довжину 1000 байт. І вихідний код, що перевищує 1000 байтів, робить свою справу. Я не впевнений, як це сталося.


7
Можливо, це найдовша відповідь HQ9 + на цьому сайті. (?)
tsh

1
"для припинення програми потрібна невизначена поведінка C" Невизначена поведінка не визначена : вона може робити все, що завгодно.
Соломон Учко

Відповідно до сторінки 4 стандарту С18 : "Можлива невизначена поведінка варіюється від ігнорування ситуації повністю з непередбачуваними результатами, до поведінки під час перекладу чи виконання програми в документально підтвердженому вигляді, характерному для навколишнього середовища (з видачею діагностичного повідомлення або без нього ), до припинення перекладу або виконання (з видачею діагностичного повідомлення). "
Соломон Учко

@SolomonUcko Але ми визначаємо мову за її компілятором / перекладачем на цьому сайті. І відповідь прекрасна, якщо хоча б один компілятор / перекладач може дати правильний результат.
tsh

9

05AB1E , 4 байти

"A"§

Виходи з’єднані без роздільника.

Спробуйте в Інтернеті або спробуйте в Інтернеті з навколишніми цитатами .

Пояснення:

        # Program without surrounding quotes will output string "A"
"A"     # Push "A" to the stack
   §    # Cast it to a string
        # (output the top of the stack implicitly as result)

        # Program with surrounding quotes will output string "§"
""      # Push an empty string to the stack
  A     # Push the alphabet to the stack: "abcdefghijklmnopqrstuvwxyz"
   "§"  # Push "§" to the stack
        # (output the top of the stack implicitly as result)

На жаль, це порушує правило №2. Незважаючи на те, що у вашому коді добре мати кілька порожніх лапок, має бути принаймні одна не порожня цитата як в оточенні, так і в незамкненому вигляді.
Geza Kerecsenyi

@GezaKerecsenyi На жаль, прочитайте минулу частину " в цитованих і без цитованих формах ". Слід виправити зараз.
Кевін Кройсейсен

6

Japt , 4 байти

"P"s

Спробуйте це без котирування або цитування

Pє змінною Japt для порожнього рядка, і sметод нарізає рядок - без жодних аргументів він нічого не робить.


Або ще дещо менш тривіально:

"+"u

Спробуйте це без котирування або цитування

Перший верхній регістр, +а другий uдодається до порожнього рядка.


3
Зауважте, що 4 - це мінімальний бал за це питання, оскільки якийсь менший порушує обмеження.
Джо Кінг

5

C # (Visual C # Interactive Compiler) , 113 112 107 70 64 байт

Write(".f();static void f(this string s){Write(s+')'+';');}//");

Збережено 5 байт завдяки @negative seven

Без котирування та цитування

Через деякий час я зрозумів, що моє рішення занадто складне. Найновіша програма, показана тут, просто приховує решту програми в коментарі, щоб уникнути помилок при загортанні в лапки.

Загорнувшись у лапки, Write(переходить на розширений метод, який друкує його разом із );.


Split()-> Trim(), і var a->_
мінус сім

1
@negativeseven Спасибі, я б ніколи не думав використовувати відмову!
Втілення Невідомості

1
@negativeseven Насправді, моє рішення навіть не потрібно було бути таким складним, подивіться на мою останню редакцію
Втілення Невігластва,

64 байти методом розширення. Досить здивований, що це так добре вийшло!
негативна сім’я

1
@negativeseven Дякую! І ви дали мені ідею для другої частини виклику: я захоплював зовнішню змінну, а потім використовував Removeі Insertна ній, тепер я можу просто використовувати метод розширення!
Втілення Невідомості

4

Perl 6 , 11 байт

say ".say~"

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

Друкується .say~із заднім рядком. Здається, занадто просто. Я щось пропускаю?

Коли загорнуті в лапках , виробляє sayз космічної і символ нового рядка.


2
Я не думаю, що так. Це просто p6, скажімо, (ha) скажімо, $ foo і $ foo.say, що робить це набагато простіше.
користувач0721090601

4

" Хм ... Foo - це дуже адаптована мова. " Для тих, хто не знає Foo: все, що знаходиться в межах подвійних лапок, виводиться, а все інше (за винятком кількох інших вбудованих символів) - немає. " Ідеальна мова для роботи " - це заниження. ;)
Кевін Круїссен

2
Отже, в основному, просто зірвати будь-яке інше рішення цього виклику ?!
Кудлатий

@Shaggy Мова - Foo. Практично все, що має хоча б пару цитат і обидва очікувані вихідні непусті роботи у Foo у цьому виклику. Так "a"b 1"2"працює і в Foo. Єдина відповідь у цьому виклику, яка поки що не є поліглотом Foo, - це HQ9 +, оскільки інтерпретатор Foo також має проблему переповнення.
jimmy23013

4

> <> , 18 9 байт

"|o<"r>o|

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

Спробуйте в Інтернеті! ( цитується )

Пояснення

"|o<"r>o|
"|o<"     Pushes the quoted characters onto the stack
     r    Reverses the stack
      >o| Outputs all characters on stack & errors
""|o<"r>o|"
""          No-op
  |         Reverses the IP direction
     "r>o|" Pushes the quoted characters onto the stack (backwards)
  |o<       Outputs all characters on stack & errors

5
Ласкаво просимо в Code Golf!
Стівен

@Stephen Дякую!
tjjfvi


2

Рунічні чари , 9 байт

"!""$;"$;

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

Від Кевіна Круїссена, який по суті зафіксував мою першу спробу, використовуючи те, що я зробив у другій.

Знижуючись на "у фунгоїдів ніколи немає незрівнянних цитат" згинання правил "є щось про це, що не повинно бути нормально" маршрут, на який я згадував у своєму власному коментарі:

7 байт

0".""$;

Спробуйте в Інтернеті! і"0".""$;"

За звичайних обставин ця програма виконує як 0".""$;0".""$;виштовхування цілого числа 0, тоді рядок ., конкатенати $;0, NOP, об'єднує порожню рядок, друкує верхню частину стека (рядок .$;0) і завершує. Обгортання його в лапки створює, "0".""$;"що виштовхує 0рядок, NOP, об'єднує порожній рядок, друкує верхню частину стека та припиняє (надання раніше недрукованого цілого числа 0у рядковій формі). Останній "залишається невиконаним (і так чи інакше не є частиною оригінальної програми).

У фунгоїдів немає рядкових літералів, вони мають команду, яка перемикає режим "читання власного джерела у вигляді рядка", а певна форма "покажчика інструкції досягла межі джерела" (як правило, обведення краєм), тому той самий вихідний код -позиційний-байт діє як інструкція "почати рядок", так і "закінчити рядок", створюючи літеральний рядок цілого рядка / стовпця (виключаючи "сам).


Супер швидка відповідь! Мені просто цікаво, чи я неправильно зрозумів щось про ваше подання, але для мене це не друкується $;в кінці в цитованій версії.
Geza Kerecsenyi

Я зрозумів, що після перечитування я намагаюся загадати, чи може рунік виконати цей біт. Почав досліджувати "непарні" цитати зараз; напр. "$;і ""$;"(Рунічні котирування обертання, що поєднуються між собою).
Draco18s

@GezaKerecsenyi Повідомте мене, якщо моя оновлена ​​програма порушує правила.
Draco18s

Гм .. Як це справедливо? Ваша програма без виведення лапок !.(що правильно), але чи не повинна ваша програма з котируваннями виводити 0$;? PS: Я взагалі не знаю Runic Enchantments, але потенційне виправлення, що базується на вашому поточному макеті, який, на мою думку, є дійсним, було б 0"!""$;"$;(які результати!$; є, або виходи,0$; якщо оточені цитатами). EDIT: Насправді, я думаю, ви можете кинути 0і вихід, !$;і $;.
Кевін Кройсейсен

1
@KevinCruijssen $"друкує вершину стека" і ;закінчується. Але ви по суті отримали вагому відповідь.
Draco18s





0

Japt , 4 байти

"P"u

Без котирування, він перетворює рядок Pу великі регістри. Цитується, друкується u.

Спробуй це

Japt , 4 байти

"P"w

Без котирування, це обертає рядок P. Цитується, друкується w.

Спробуй це



@Shaggy Наші рішення дещо різні, для цього виклику існує багато різних рішень
Втілення Невідомості

Використовуйте Qзамість цього P, це більше мета! ;)
Кудлатий

0

R, 16 байт

 ";print(";");" 

Зауважте, що вищевказаний код не зафіксований у додаткових лапках і має провідні та кінцеві пробіли.

Спробуйте (незавершена версія)


Ви можете додати зауваження, що пов’язана програма - це не обгорнута версія.
Джонатан Фрех

Я також хотів би додати примітку про провідні та кінцеві простори. Важко помітити їх інакше.
mbomb007

Відредаговано, дякую за пропозиції!
Джеймс Отто

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