Дихотомии программирования (буквально)


33

Рассмотрим вопрос, написанный на простом английском языке, ответ на который включает два достаточно точных (но потенциально умных) слова или фразы, которые можно разделить словом «и»:

Q: Каковы две стороны монеты? A: головы и хвосты

В: Каковы лучшие способы путешествовать? A: самолет и реактивный ранец

В: Почему ворон похож на письменный стол? A: потому что есть «b» в обоих и «n» ни в

Цель

Напишите программу, которая при нормальном запуске выдает такой вопрос.

Когда все остальные символы удаляются из программы, начиная со второго символа, и результат повторяется, результат должен быть таким, какой есть слева от «и» в ответе.

Когда все остальные символы удаляются из программы, начиная с первого символа, и результат повторяется, результат должен быть таким, который находится справа от «и» в ответе.

(Само «и» не выводится.)

пример

Если программа

A1B2C3D4E5F6G7H8I9

и его вывод

What are the two sides of a coin?

Тогда вывод ABCDEFGHIдолжен быть heads, а вывод 123456789должен быть tails.

Правила о вопросах и ответах

  • Вы можете использовать мои примеры вопросов, но я призываю вас придумать свои.
  • Вопрос и две части ответа:
    • все должны быть разными
    • должен быть общий грамматический смысл английский
    • может содержать только печатные ASCII (от 20 до 7E)
  • В идеале вопрос должен быть написан с заглавной буквы и пунктуации (но ответы не должны быть).
  • Вопрос должен быть длиной не менее 30 символов и иметь энтропию выше или равную 3,5. (Введите строку, нажмите « Рассчитать» , найдите последнюю букву H (X) .)
  • [space]and[space]Каждая из двух частей ответа (не считая между ними) должна содержать не менее 5 символов с энтропией выше или равной 2.
  • Слово «и» может появиться в любой части ответа.

Правила о коде

  • Ни один из 3 фрагментов кода не может:
    • содержать комментарии или что-либо еще, что традиционно игнорируется компилятором / интерпретатором (не беспокойтесь о том, чтобы добавить лишнюю или две точки с запятой, но если вы думаете, что это комментарий, вероятно, так оно и есть)
    • выйти из программы в середине исполнения
  • Код может содержать любые символы, включая Unicode и непечатаемый ASCII.
  • Может иметь нечетное или четное количество символов.
  • Вывод идет в стандартный вывод или файл или что-то кажется разумным. Там нет ввода.

счет

Поскольку я не хочу поощрять ответы в гольфе, но хочу еще больше поощрять умные ответы, выигрыш будет чем-то средним между соревнованием по коду и популярностью:

Оценка = (upvotes - downvotes) - floor((bytes in code that outputs question) / 3)

Самый высокий балл побеждает.

(Используйте http://mothereff.in/byte-counter в качестве счетчика байтов.)


6
Да, это так сложно сделать на «нормальном» языке, таком как JavaScript. Самое дальнее, что я могу получить, это что-то вроде x0=00;;. Отличный вызов!
Ручка двери

@ Doorknob извините за выкачку вашей лодки, но 00;компилятор традиционно игнорирует ее ...
Джон Дворжак

2
Серьезно ... "Яблоко" имеет энтропию Шеннона 1,92 ???
Джон Дворжак

4
It may have an odd or even number of charactersЕсть ли количество символов, которые не являются четными или нечетными?
Закуска

1
@ Snack Это позволяет людям знать, что две части кода ответа не должны иметь одинаковую длину.
Увлечения Кэлвина

Ответы:


55

Javascript (148 байт)

Создает несколько бессмысленных литералов с побочным эффектом создания предупреждения * для вопроса. (Сплиты делают аналогично, но создают оповещения * для каждого из ответов).

"';"+alert( 'What is the ideal breakfast???')+/ " ;apl=e"rbta(k"esnc"r.armebplleadc ee g g s(" ) + " \/)k;e"/+ ",t'hceo 'c)a;kye= ailse rat (lpi)e "

расколы:

";+lr('hti h da rafs??)/";p="baken".replace   (    /ke/ ,'co');y=alert(p) 

а также

'"aet Wa steielbekat?'+  alert("scrambled eggs")+"\);"+"the cake is a lie"

 

Вопрос: What is the ideal breakfast???

Ответы: baconиscrambled eggs


4
Это то качество, которое мне нравится на этом сайте! Где еще можно найти людей, которые могут это сделать ??
Cruncher

1
Я взял уроки импровизации (возможно, очевидно), и я дам вам +1 здесь за значение юмора. Но, как знают все инженеры по диафрагме, мы являемся практиками науки ... поэтому на самом деле самое смешное - сделать аккуратный пистолет . :-)
Доктор Ребму

29

Brainfuck (437 символов)

Я должен признаться, что это моя первая программа, которая на самом деле делает что-то значимое. Программа высоко оптимизирована для систем с малым объемом памяти, поскольку она использует только 4 области памяти.

Вопрос: What are the two main groups of trees?

Ответы: conifersиbroadleafs

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

Основной цикл

Программа состоит из основного цикла (который на самом деле не является циклом, поскольку все [] -блоки выполняются только один раз) и двух секций.

-+[[        // let answers enter
            * SNIP interleaved answer sections *
]]
++-+[[      // let odd answer and question enter
    +-+-[[  // let question enter
            * SNIP question section *
    ]]
]]

Если вы хотите протестировать разделы независимо, вы должны принять во внимание основной цикл. Расположение 0 содержит -1 в четном ответе, 1 в нечетном ответе и 2 в разделе вопросов.

Раздел ответов

Четный ответ (удалены нечетные инструкции):

// location 0 contains minus 1 from main
// set location 1 = 10 * 10 minus 1 = 99 (c)
+++++++++++[>++++++++++<-]>-. // c
++++++++++++.-.     // on
-----.---.          // if
-.+++++++++++++.+.  // ers
<                   // goto 0 (which contains 0)
+-+-+-+-+-          // padding to match length of odd answer

Нечетный ответ (четные инструкции удалены):

// location 0 contains 1 from main
// set location 1 = 16 * 6 plus 2 = 98 (b)  location used for characters below 'l'
// set location 2 = 16 * 7 plus 2 = 114 (r) location used for 'l' and above
+++++++++++++++[>++++++>+++++++<<-]>++.>++. // br
---.<               // o
-.+++.              // ad
>---.<              // l
+.----.+++++.       // eaf
>+++++++.           // s
>                   // goto 3 (which contains 0)

Раздел вопросов

Я решил сохранить место для отдельного места, потому что его значение резко отличается от других символов. Это позволяет печатать пространство просто с <.>.

// location 0 contains 2 from main
// set location 1 = 17 * 2 minus 2 = 32 (space)
// set location 2 = 17 * 5 plus 2 = 87 (W)   location used for characters below 'r'
// set location 3 = 17 * 7 minus 3 = 116 (t) location used for 'r' and above
+++++++++++++++[>++>+++++>+++++++<<<-]>-->>---<++. // W
+++++++++++++++++.  // h
-------.>.<         // at
<.>                 // (space)
.>--.<++++.         // are
<.>                 // (space)
>++.<+++.---.       // the
<.>                 // (space)
>.+++.<++++++++++.  // two
<.>                 // (space)
--.------------.    // ma
++++++++.+++++.     // in
<.>                 // (space)
-------.>-----.     // gr
<++++++++.>+++.     // ou
<+.>--.<            // ps
<.>                 // (space)
-.---------.        // of
<.>                 // (space)
>+.--.<-..>+.       // trees
<<[<++>-]<-.<       // ? (value_of_space * 2 minus 1)

Окончательное обновление

В моем последнем обновлении я оптимизировал умножения так, чтобы использовались минимальные инструкции. Кроме того, включение 'l' во вторую группу символов в разделе нечетных ответов оказалось огромным улучшением. Односимвольная экономия в нечетном ответе в основном означала два символа из всей программы, так как это также уменьшает отступ от четного ответа. Я также удалил пару ненужных инструкций здесь и там, и я не думаю, что смогу оптимизировать код дальше.


23

Партия - 84

Я очень горжусь этим

Полная программа: Каковы две стороны медали? (приставка)

echo What are two sides of a coin?  2>>xx  2>>cc&&eecchhoo  hteaaidlss  2>>xx  2>>cc

Только вечерние: головы (файл 'c')

eh htaetosdso  on 2>x >c&echo heads 2>x >c

Только шансы: хвосты (файл 'x')

coWa r w ie faci? >x 2>c&echo tails >x 2>c

Работает путем перенаправления вывода ошибок в файл в обоих случаях.


Уже придумал, как сделать его короче, но придется подождать до завтра.
Οurous

3
Это самый высокий результат: 12 - 28 = -16.
полугодие

20

Питон - 104 96 (гольф: 76)

Мое решение довольно простое (и как-то читаемое):

"";print 'What is the color of a zebra?' ;""
paraianat= "' b l a c k '"
aparaianat="'w h i t e'"

Выход:

What is the color of a zebra?
black
white

Честно говоря, я нашел идею для первой строки в ответе bitpwner.


Еще более удобочитаемая альтернатива: - 113 105 97

"";print 'What is the color of a zebra?' ;""
"p r i n t ' b l a c k '" ;"p r i n t ' w h i t e '"

Еще более короткая альтернатива: - 86 76

"";print'What is the color of a zebra?';""
"""";;pprriinntt''bwlhaictke''"""

«Шахматная доска» также соответствует требованиям.
Мартин Эндер

3
@ MartinBüttner Zebra. :-P
Дэвид Ричерби

О, мне нравится zebra. И это хорошо вписывается в «гольф» версию с вопросом ровно 30 символов. Таким образом, я немного изменил свое решение. :)
Falko

1
Строки в тройных кавычках - это не комментарии, а строки из нескольких строк. Поскольку они также используются в качестве строк документации , их могут спутать с комментариями.
Фалько

1
Обновленный вопрос составляет всего 29 символов.
Денис

15

Rebmu : 79 символов ИЛИ (37 + длина (p1) + 2 * max (длина (p2), длина (p3)))

Сначала я дам 79-символьное решение, которое спрашивает, какие языки вы должны изучать? (энтропия 4.0, 30 букв не включая ?) и предлагает вам рекомендации Ребола и [Красного] :

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} pp{{[RReebdo]l}}

Доступная здесь уникальная тактика, отсутствующая на других языках, основана на использовании того факта, что фигурные скобки являются асимметричным разделителем строк, который может юридически вкладываться:

my-string: {"It's cool," said {Dr. Rebmu}, "for MANY reasons--like less escaping."}

Это позволило мне создать обобщенное решение, которое может легко работать с любой программой, которая не использует escape-последовательности. Версия из 79 символов была достаточно простой для быстрого доступа, но для правильного размещения произвольного исходного кода для программ p2 и p3 вам понадобится полный шаблон. Если бы мы использовали это, это было бы 87 символов:

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} ddoo{{pp{{[RReebdo]l}}}}

Шаблон для использования этого общего вида является то , что если у вас есть три исходных текстов последовательных символов длины переменных (давайте использовать пример , как AAA, BBBBB, CCCCCCC) вы можете кодировать их как - то вдоль линий:

DD  11  DD :do dd {dd  {AAAqt}} ddoo{{BCBCBCBCBC C C}}

(Примечание. Хотя этот шаблон не будет работать без настройки программ, использующих escape-символы, это не является фатальным недостатком. Для получения непревзойденной левой фигурной скобки в строке, разделенной фигурными скобками, требуется что-то вроде {Foo ^{ Bar}..., но вы можете легко переписать это, используя альтернативная нотация строк "Foo { Bar"и комбинированные падежи могут управляться путем склеивания смеси неэкранированных строк.)

Итак ... как насчет примера? Как только общая форма стала доступна, эта 573-символьная программа была собрана всего за пару минут из 3 предыдущих решений для гольфа:

DD 11 DD: do dd {dd {rJ N 0% rN Wa1m2j S {\ x /} D00 Hc & [u [Ze? Wa Qs ~ rpKw [isEL00c [skQd2k] [eEV? KQ [tlQ]] pcSeg - b00 [ eZ 1 5] 3] prRJ [si ~ dSPscSqFHs] eZ 1 [s + dCa + wM2cNO]]] Va | [mpAp2j] prSI ~ w { } Ls2w Wl h01tiVsb01n -1 chRVs { } hLceVn01qt}} ddoo {brD [sn [{N sbeo [tIt0l1eV} 0e5gXN1 01L {5s0} C {1} 0 {0 Do5f0 0bMe1e0r0} 0]]] tMw9C9 Нумц Jl [paN + [KperlCJBn [[ba sWS {B noJnlw]] 00] 0 {K, j} b P {. } Если EZ - - n [N m {Магазин и покупает еще что-то}] {T akeonedown и passitar ound} c B w P lf]]}}

Если кто-то хочет попробовать написать эту программу на своем языке и думает, что может побить 573, дайте мне знать. Я дам вам большое количество репутации, если вы это сделаете - если предположить, что ваш язык не Rebmu, потому что я знаю, что эти программы не минимальны. :-)

То «расточительное» расстояние, которое вы получаете в конце, - это то, что происходит, когда p2 и p3 имеют несбалансированную длину. Но в этом случае все 3 программы имеют разный размер, поэтому для p2 / p3 не существует особой подходящей пары. (Я выбрал их, потому что не было никаких внешних данных в качестве входных данных, таких как лабиринт или что-то еще, а не то, что они были одинаковой длины. Хотя я мог бы написать новые программы, которые были бы более оптимальными, я потратил достаточно времени, и смысл был ты не нужно писать новые программы ...)

Как это работает

(Примечание: я начал с более «креативного» подхода, который был не таким обтекаемым, а более интересным. Я переместил его в запись в своем блоге. поскольку описание этого подхода уже давно.)

Ключевым моментом здесь является хитрость «eval code as a string», как и в некоторых других записях, у нее просто есть козырь асимметричного разделителя строк. Я начну с объяснения работы случая из 80 символов.

Вот «целая» программа, настраивающая пробел для удобства чтения этого случая:

DD 11                    ; assign 11 to dd (about to overwrite again)
DD :do                   ; make dd a synonym for DO (a.k.a. "eval")

; eval a string as source code that ends with QUIT (QT)
dd {dd  {p{Which languages must you learn?}qt}}

; we'll never get here, but whatever's here must be legally parseable
pp{{[RReebdo]l}}

Здесь мы заканчиваем установку DD в качестве синонима DO (он же «eval»). Но хитрость заключается в том, что когда запускаются пополам программы, они запускают код, единственным эффектом которого является определение D для безобидного литерала 1.

Вот что делает код odd-chars, пробелы снова корректируются:

D 1                      ; assign 1 to d
D d                      ; assign d to itself, so it's still 1
d                        ; evaluates to integer, no side effect
{d pWihlnugsms o er?q}   ; string literal, no side effect
p {Rebol}                ; print "Rebol"

А вот код четных символов:

D 1                      ; assign 1 to d
D:od                     ; URL-literal (foo:...), no side effect
d                        ; evaluates to integer, no side effect
{{hc agae utyulan}t}     ; string literal (well-formed!), no side effect
p {[Red]}                ; print "[Red]"

Это на самом деле так, что для не разделенной на две части программы dd {dd {(arbitrary code)qt}}будет выполняться любой код, который вы хотите. Однако есть два вызова для оценки вместо одного. Дело в том, что хотя вложенные скобки прекрасно работают в чередующемся коде, они портят поведение DO. Потому что:

do {{print "Hello"}}

Будет загружать строку как программу, но эта программа в конечном итоге будет просто строковой константой {print "Hello"}. Таким образом, хитрость, которую я здесь использую, заключается в том, чтобы взять мой DD (содержащий то же значение функции, что и DO) и запустить его дважды. Полуфабрикаты жуют разные части строки, но они не жуют оба, если четность / нечетность правильны для содержимого, и потому что то, что осталось вне строки после деления пополам, является просто интегральной константойd они безвредны.

С этим шаблоном нетрудно написать поведение программы, когда оно не разрезано пополам - вы можете вставить что угодно, если длина кода четна (нечетно, если вы считаете QT, то есть QUIT). Если вам нужно получить четное число из нечетного, добавьте пробел (так что в моей формуле на самом деле есть +1 на p1 для нечетных длин программ p1) . Казалось бы, уловка заключается в том, чтобы впоследствии написать этот код с чередованием, который должен пройти синтаксический анализатор, если это не так. разделен пополам. (Он не будет запущен из-за QT, но он должен быть загружаемым, прежде чем он будет выполнен.)

Этот случай тривиален; ppпрекрасно загружается как символ, даже если он не определен, и разбивается на части pдля печати в каждой половине программы. Но мы можем сделать еще один трюк, просто снова используя строковый литерал. Половинные программы по-прежнему определены нормально, поэтому мы могли бы просто сказать:

ddoo{{pp{{[RReebdo]l}}}}

Имея единственную часть, подобранную синтаксическим анализатором во всем случае, быть символическим словом ddooи строковым литералом, мы можем затем чередовать любые две программы, которые мы хотим, внутри этого строкового литерала и не раздражать синтаксический анализатор. Половинные версии просто скажут:

do{p{Rebol}}

..а также...

do{p{[Red]}}

Как я уже сказал, эта часть выглядит знакомой другим решениям, которые рассматривают программы как строки и оценивают их. Но в случае соревнования, когда программы, которые вы упаковываете, содержат вложенные строки, это добавляет ключи для них. Здесь единственные вещи, которые доставят вам неприятности, - это использование выхода через carets ( ^) ..., которое можно легко обойти.


(Небольшое «читерское» примечание: я добавил QT для «QUIT» в ответ на эту проблему. На самом деле, я целенаправленно удалил аббревиатуру для Quit раньше ... потому что почему-то я думал, что это хорошо только для консольного использования и просто взялся за двухбуквенный пробел, если его не было в REPL. Я добавляю его, потому что вижу, что был неправ, не добавляя его в этом конкретном случае. Тем не менее, до этого изменения он был бы на 2 символа длиннее. Когда я впервые опубликовал решение, в Rebmu была ошибка, которая не позволяла ему работать, хотя он должен был ... теперь это работает.)


Вы на самом деле создали свой собственный язык программирования?
голоса

2
@ tjt263 Лучше подумать о «кодировании» существующего языка Rebol . Люди делали подобные вещи, например, с Pyth , который в основном сокращает Python. Но у Rebmu есть довольно интересное отличие в том, что он на самом деле загружается парсером Rebol и «совместим». В любой момент вы можете ворваться в Rebol, например, в Hourglass . Рад обсудить это в чате Rebol и Red, если хотите.
Доктор Ребму

15

Perl 186 139 135

"";print'What are the best things in life?';""&&pprriinntt("'hceraurs ht hyeo ulra meennetmaiteiso'n s   o f   t h e i r   w o m e n ")

Каковы лучшие вещи в жизни?

"pitWa r h ettig nlf?;"&print('crush your enemies'                 )

сокрушить своих врагов

";rn'htaetebs hnsi ie'"&print"hear the lamentations of their women"

услышать плач своих женщин

Используя менее длинные ответы:

Perl 79 72

"";print'What are my preferred weapons?';""&&pprriinntt("'smwaocredss'")

What are my preferred weapons?(30 байт, H (X) = 3,76) swords(H (X) = 2,25) и maces(H (X) = 2,32)


9

Питон - 139 103

"";print'What are the ingredients for success?';""; ";" ;id=='"RUaniincboorwnss'";;pprriinntt  id++"'"'

What are the ingredients for success?-> UnicornsиRainbows

Тест:

c="\"\";print\'What are the ingredients for success?\';\"\"; \";\" ;id==\'\"RUaniincboorwnss\'\";;pprriinntt  id++\"\'\"\'"
exec c        # What are the ingredients for success?
exec c[::2]   # Unicorns
exec c[1::2]  # Rainbows
print 
print c[::2]  # ";rn'htaeteigeinsfrsces'";"";d="Unicorns";print d+''
print c[1::2] # "pitWa r h nrdet o ucs?;" ; i='Rainbows';print i+""

Старая версия:

# What are the ingredients for success?
"";print(('What are the ingredients for success?'));""; ";" ;"pHrEiRnEt (C'OUMnEiSc oZrAnLsG'O)"; ";" ; "p,r iTnOtN(Y' RTaHiEn bPoOwNsY'.)"
# Unicorns
";rn('htaeteigeinsfrsces')";"";print('Unicorns');"";", TONY THE PONY."
# Rainbows
"pit(Wa r h nrdet o ucs?);" ; "HERE COMES ZALGO" ;  print('Rainbows')

6

Хаскелл, 117

Необходимость работать с функциональной парадигмой Haskell означает, что все должно быть присвоено переменной или закомментировано с помощью строчных --или блочных {- -}комментариев; запуск бессмысленных функций без присваивания отсутствует. Поэтому, чтобы оставаться в здравом уме, я держал вопрос и ответы настолько короткими, насколько позволяют правила.

Вопрос: Чего мне не хватает?

main=putStrLn{---}"What can I not have enough of?"{- }
=u"Scrank=e"sS"h
omeasi"n
=mpauitnS=tpru taSntprt tmLi

-----}

«Обувь» и «пирожные»:

mi=uSrn--"htcnInthv nuho?{ 
uSrn="Shoes"
main=putStr mi
--}
anpttL{-}Wa a  o aeeog f"-}="cakes"
main=putStr anpttL
---

NB Появление crankпод "Что мне может не хватать?" не должны рассматриваться как значимые.


1
Комментарии не разрешены
гордый haskeller

А как действует второй синтаксис haskell?
гордый haskeller

исходный код имеет незакрытый блок комментариев, потому что закрывающая пара находится в строковом комментарии. код «пирожных» даже не похож на код - разве это не функция? где знак = в его определении? разве это не называется anpttLWa?
гордый haskeller

@proudhaskeller Пропустил правило о комментариях. Прости за это. Первая программа не имеет закрытого блока комментариев. Разбирает просто отлично. Строковые комментарии не имеют смысла внутри блочных комментариев. Второй действителен, потому что строковые комментарии действительны. anpttL является строкой. Уберите комментарий блока, и вы увидите, что он равен "пирогам". Wa находится в комментарии к блоку, так что нет, на самом деле это не anpttLWa.
comperendinous

2
@proudhaskeller Моя голова позволяет GHCi делать работу от его имени.
конкурирующее

4

Лисп (76 символов)

Вопрос из 31 символа, 6 символов в каждом ответе ⟹ длина - полезная нагрузка = 33

'(: (pprriinncc''fmuacghesnitaa))':(princ "What is your favorite pink hue?")

Я хотел использовать «Какой ваш любимый цвет?», Но даже простирался до британского правописания, он только достиг минимума в 30 символов для длины вопроса, и мне нужен был вопрос нечетной длины, чтобы сбалансировать двойные кавычки.

Они говорят, что Common Lisp многословен, но вы не подумали бы так, если бы пошли на эту строчку. Это даже не очень запутано, вам нужно только вставить немного пробела, чтобы увидеть, что цитируется и что выполняется.

Многие реализации Lisp будут выкрикивать цвета, потому что они переводят символы в верхний регистр. Если это вас беспокоит, измените ''fmuacghesnitaaна ""fmuacghesnitaa"".


Поскольку этот вопрос содержал компонент для голосования, я старался привлечь внимание, чтобы попытаться получить больше голосов. Но щедрость закончилась, и, поскольку я не могу дать себе очки :-) Я передам ее вашей записи на основе языка предка Ребму, и призываю вас проверить ее, если вы еще этого не сделали! codegolf.stackexchange.com/a/36114/57
Доктор Ребму

3

СТАТА 295

Вопрос: Какие десерты лучше всего испечь прямо сейчас? Ответ: пирожные и печенье.

Объяснение: Команды в STATA разделены новыми строками.
"//" - это комментарий в STATA, "///" указывает компилятору перейти к следующей строке и включить его содержимое в текущую команду.

Команды в STATA часто могут быть сокращены до такой степени, что они считаются достаточно уникальными, чтобы их можно было дифференцировать (таким образом, «generate» становится «g», «global» становится «gl» или «glo», «capture» становится «cap», » дисплей "становится" ди "и т. д.). Команда display отображает текст на экране. Команда capture захватывает все ошибки (включая синтаксические), поэтому эта программа компилируется правильно.

Я предполагаю, что если вы хотите привередничать, компилятор игнорирует любые дополнительные "/" после первых 3 последовательных строк. Также в программе "Домовые", технически + "" есть комментарий. Но я утверждаю, что это все еще имеет значение, потому что команда захвата все равно сделала бы это неуместным, даже если бы это не был комментарий.

Спасибо за чтение моего действительно длинного объяснения. Теперь код:

«Какие самые лучшие десерты выпекать сейчас?»

g   a = "g   q   /b/a/" 
g l= "b = ""b r o w n i e s "
g   c = "g   /b/a/" 
g lpo= "d = ""c o o k i e s "
g   e = "c a p  "  /////
 +  "d i ""$ b "
g   f = "c a p  "  /////
 +  "d i ""$ d "
g   g = "c a p  "  /////
 + "c a p   / / /  "+ "/ / /"
di "What are the best desserts to bake right now?"

«домовые»

g a="    ba"
gl b="brownies"
    g /// 
 p="  "       
g e="   " //
 di "$b"
    cap ///
+" "  
g g="   " //
  cap ///   +"  "
i"htaetebs esrst aergtnw"

"печенье"

    g q /// 
 ="  "        
g c="  ba"
glo d="cookies"
    cap ///
+" "  
g f="   " //
 di "$d"
    cap  ///
+ "       " ///
d Wa r h etdset obk ih o?

2

Кш (82 символа)

35-символьный вопрос, 5 символов в каждом ответе ⟹ длина - полезная нагрузка = 37

ec=\'o'(;)eehc(h)oe cChroi m$e1;; '\'
echo  What\'s the  country\'s worst problem?

Я злоупотребляю синтаксисом определения функции за пределами POSIX. Тире и bash не могут принять это, но ksh (общественное достояние или ATT) может.

Ничего примечательного не происходит, только немного эха. Не тратьте, не хотите.


2

PowerShell 88

"" > $x;{What is my favorite equipment?};"" >> ${x}

${XsXwXoXrXdX};;;${XsXhXiXeXlXdX}

Какое мое любимое оборудование? (30 символов, H (X) = 4,0314)

"  x{hti yfvrt qimn?;"> {}
{sword};$XXXXXXX

меч (5 символов, H (X) = 2.32193)

">$;Wa sm aoieeupet}" >$x
$XXXXXX;;{shield}

щит (5 символов, H (X) = 2,58496)

В полной программе он перенаправляет пустые строки в несуществующую переменную ${x}(кавычки для этих пустых строк используются для формирования бессмысленной строки, которая перенаправляется либо в пустой блок{} либо в несуществующую переменную $xв четных / нечетных версиях), затем печатает вопрос и объявляет 2 неиспользуемые переменные (которые печатаются и помещаются рядом с другой неиспользуемой переменной $XXXXXXили $XXXXXXXв разных случаях).


1

GolfScript, 51 байт

"Which are the sides of a coin? ".;""thaeialdss""

Выход

Which are the sides of a coin? 

Как это работает

.; дублирует строку и удаляет копию. ""толкает пустую строку thaeialdssне определено, поэтому ничего не делает.

Нечетные символы

"hc r h ie faci?";"heads"

Выход

heads

Как это работает

; удаляет первую строку из стека.

Четные символы

Wihaetesdso  on ."tails"

Выход

tails

Как это работает

Wihaetesdsoи onнупс. .дублирует пустую строку в стеке.

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