Сортируйте список и напишите немного английского!


99

Вашему боссу удалось прочитать секретное скрытое сообщение . Однако он не уволил вас, он просто сделал вас секретарем и запретил вам писать код.

Но ты программист. Вам нужно написать код. Вы должны код.

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

Можно использовать любой язык, но я ищу наиболее креативное решение (спасибо, если ваш код выглядит как деловое письмо).

Это конкурс популярности!


14
пробелы на помощь?
kaine

19
Или SPL .
Деннис

4
Я тоже думал о SPL, но шеф-повар тоже может быть веселым: P
Adriweb

@ Денис Это было бы почти невозможно понять.
Исия Медоуз

Забавно .. рубиновых заявок пока нет! : P
Гаурав Агарвал

Ответы:


161

GolfScript

Дорогой Босс Человек.

До меня дошло, что моя клавиатура нуждается в замене; ключи, необходимые для написания
символов ~ $ `. и} не функционируют должным образом.

Работать так очень сложно! Пожалуйста, проинструктируйте отдел ИТ
как можно скорее заменить неисправную клавиатуру.

С уважением,

Деннис

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

Как это устроено

  • Неопределенные токены (например, большинство английских слов) являются noops в GolfScript.

  • . ; дублирует входную строку и удаляет копию.

  • ~ $ оценивает входную строку и сортирует результирующий массив.

  • ` осматривает массив (для красивой печати).

  • . and дублирует выходную строку и удаляет копию.

  • }это «супер комментарий», так как он не имеет себе равных; все, что следует за ним, игнорируется.


111
Я предполагаю, что вы написали это на другой клавиатуре?
Geobits

13
Возможно, он написал это с помощью клавиатуры мыши, спрятанной в специальном приложении?
Tally

46
Это встроенный комментарий ... это блочный комментарий ... это СУПЕР-КОММЕНТАРИЙ!
Дверная ручка

9
@Geobits: Давайте предположим, что «не работают должным образом» переводится как «требует многократных попыток, чтобы в конечном итоге получить символы на экране»
justhalf

Или он использовал карту персонажей.
Ден04

111

PHP

Определяет вызываемую функцию, itemкоторая будет сортировать массив, который вы передаете.

Dear Boss,
I have successfully discovered all brackets.
The ones marked with question marks are the ones which I am not sure about.
The ones marked with asterisks can be used both as an opening and closing delimiter.
(
)
{
}
[
]
>?
<?
/*
'*
"*

Thank you for reading my memo. In other news, the */ function item (#12 in the list of things that have an asterisk before them) was discovered recently, which I read on a local news site.
#12 is my favorite function item! Just thought you'd be interested. Sorry if this is too off-topic; here's some business stuff. Imagine that you had some (let's say you have a combination of $10
& $money) # of dollars (i.e. you have $10 + $money). Now, here's the important part. It's so important, I'll separate it from the rest of this message with the brackets I discovered:

{
#10 in my personal list of things to remember about money management is that you have to be careful. I still haven't been able to
sort #9 out yet (I bought the manual from someone else), but #9 also seems to be about being careful. You also have to guard the dollars
($money); #13 says that if you don't protect them by putting them in a bank or something, they might be stolen.
}

   //-----------------------\\
  //   Signed,               \\
  //   Your great employee   \\
   //-----------------------\\

Это выглядит намного лучше, если вы вставите его в текстовый редактор и измените размер окна, чтобы вы могли сразу увидеть все на экране.


118
«Я успешно обнаружил все скобки». Кто-то идет за работником месяца!
Мартин Эндер

20
-1: вы пропустили «и». (Серьезно, +1.)
Кевин

4
Вау человек. : D Не могу перестать смеяться
Ven

70

Python 2

'''''''''''''''''''''''''''''''''''''''''''''
One of the phones in the office seems to be broken, so it needs to be fixed.

''''''''''''''''''''
This memo was made while testing the functionality of its buttons since
some of them didn't seem to work.
''''''''
1 (no alphabets) working with no problem
''''''''
abc working with no problem
'''''''''
def working (partially):
 please                                              =( 'o" :\
 at least I figured out that this was a problem!     :')
 # list (phone number list) was missing as well, so I need to:

 #1
 print (please, sorted (partially)) [1] # list, and [2] the memo
 #2
 return
 #3
 check (making-sure, ghi-jkl-etc. works)

''''''''''''''''''

44
+1 очень нравится, как вы пробирались, defчтобы обозначить «буквы на клавише 3 телефона».
AJMansfield

68

Python 2

'''
                        5th of September 2014

Dear Boss,

I  am writing    this Mail because     i want to discuss  
 the recent   incident.
I am Thankful    that you did not fire   me, and gave me a secretary position instead.
I dont have any    experience in being a     sec retary and I am not very. good at   writing mail,
so please   excuse any spelling,   grammar or   formating   errors  in     this mail.

I will       certainly     try to improve  and do   my best in my new job      and will'''
'from now on strictly ';exec'''ute your orders.   =
Firstly      i want to    sincerly        apologize my   dumb behaviour,it was  idiotic ( and childish ).
I   really  ;apologize  to you. it  wont  .happen again, sir. If   i   could  
 only   reverse   the  timeline       (to undo it all). Then i would;
I   really   promise to never  write  code in any form

Can i talk about that   in   a   meeting with  you?
  Maybe    today at'''[4::15]#in the afternoon?

Найти правильные слова было настоящей болью.

Вход: [1,7,4,3]
Выход: [1,3,4,7]


48
Это похоже на те электронные письма, которые я получаю от Нигерии. LOL
Крис Сирефице

6
@ChrisCirefice Ну, эти письма, вероятно, также содержат скрытый код;) Интервал и несколько плохая формулировка в моем коде объясняются тем, что каждый 15-й символ строки после exec формирует новую строку, которая затем выполняется. Таким образом, вся программа в основномexec"y=input();y.sort();print y"
Markuz

1
К '''сожалению, многострочная строка в верхней части - это пустая раздача, но +1 для «отныне строго; exec», «используйте ваши заказы». и хорошие усилия: р
Томас

60

NetLogo

To Manager [IT]

Let Sue sort it; then
show Sue the end to the end

С изменением отступа и заглавных букв код становится понятным (э). Это определяет вызываемую функцию, managerкоторая принимает список в качестве входных данных и печатает отсортированный список.

to manager [IT]
  let sue sort IT; then (semicolons introduce a comment)
  show sue
  the
end

to the
end

7
Определенно не похоже на код.
Деннис

1
Мне это очень нравится.
Натан Меррилл

59

С

Ввод как разделенный пробелами список через STDIN, вывод как разделенный пробелами список через STDOUT.

Dear Boss, 

I have made for you a decision about my employment a t your company. At about noon 
a letter explaining this shall be presented to you, as I am a lazy person. As you 
are a fool, I will say no more. And I look forward to never seeing you again.

Insincerely, 
Steward Pitt

Это должно быть скомпилировано с:

gcc bossletter.c -o bossletter -Dam='+++' -Dwill='---' -Dthis='{' -Dhave=';' 
-Ddecision=',' -Dquit='*' -Dfor='(' -Dmy=')' -Dbrain='}' -Dlie=']' -Dnoon='-quit'
-DD='' -Dto='D' -Dyou='D' -Dfool='you' -Das='to' -Dday='D' -Dno='fool' -Dcake='Pitt'
-Dlook='you' -DPitt='the' -Dthe='as' -DBoss='a[9999 lie' -DAs='a have' -Dlazy='my' 
-Dperson='lazy have company' -Dyour='this' -DInsincerely='a' -Dcompany='b' 
-Demployment='int quit' -DDear='struct this employment a have brain b have' 
-Dbe='scanf for' -Dis='I[' -Dnever='for presented " " decision' -Dthat='4 decision' 
-Dagain="my have b" -Dt='decision quit about have' -Dshall='while for' 
-Dpresented='"%" to "d"' -Dletter='have brain' -DAt='a have return quit' 
-Dmore='have b' -DAnd='a have shall' -Dare='qsort for' -Dforward='--my printf' 
-Dexplaining='main for my' 
-Dsay='1 decision that made my day' 
-DSteward='Boss have no brain' 
-Dseeing='the cake is a lie'

Код расширяется до:

struct{ int *a; } b;
a[9999], I;
made(a, about) int *a, *about; {
    b.a;
    return *about - *a; 
}
main(){
    while(scanf("%d", I++ + a));
    b.a;
    qsort(a, I-- - 1, 4, made);
    b.a;
    while(I--) printf("%d ", I[a]);
    b.a, a[9999];
}

41
+1 за злоупотребление препроцессором. Конечно, с такими вещами вы можете сделать так, чтобы они читались как любой фрагмент кода, который вы хотите.
пушистый

12
Вы должны были дать значение ключевым словам и переменным и использовать препроцессор только для специальных символов, таких как фигурные скобки. Вы даже не приложили усилий.
bebe

3
@bebe больше наглое оскорбление, тем лучше, ИМХО :).

9
Следующий кодогольф должен сделать этот «исходный код» компилируемым для реализации игры жизни Конвея. -Dгольф!
Slebetman

2
@fluffy Я люблю злоупотребление препроцессором в обфусцированном C. Вы можете сделать почти все в этом действительном C-коде с достаточным количеством #define/ -Ds.
Isiah Meadows

24

Python 2 и 3

К сожалению, сегодняшние сотрудники просто не могут перестать использовать хэштеги повсеместно ...

#WritingALetter #Business    Dear Boss,
#SecondLine    I found this scrap of paper on the floor. It said "

def sortl(l):        # define a function
    return sorted(l) # returns the list, sorted "

#ScrapOfPaper    Just thought I should let you know.
#Honesty    From Laurence

[Стоит попробовать, я думаю?]


20
Отличное оправдание для использования комментариев, но, к сожалению, он содержит фактический код

Добавьте в конце печать «привет»
Энтони Фам

17

Brainfuck

Hey boss! This is the public key that you asked!

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

Pretty cool huh?

Примечание об авторских правах:

Примечание: я скопировал и вставил его отсюда. Насколько мне известно, что коды с сайта имеют авторские права cc by-sa 3.0 с указанием авторства. Если этот метод является незаконным, дайте мне знать, и я постараюсь удалить это.


4
«Ваш код должен выглядеть как можно меньше кода».
Шон Лэтэм

27
Это открытый ключ для шифрования! Не код! Разные!
Realdeo

2
@Realdeo Не забывайте, что во второй строке будет больше информации после
запуска

Хороший улов! Редактирование
Realdeo

4
С помощью brainfuck было бы гораздо проще просто включить код в простой текст. >например, может использоваться для цитат (это работает в электронных письмах) и так далее.
Инго Бюрк

16

JavaScript

Я не уверен, смогу ли я перехитрить его, но я могу скинуть его со своего следа!

/*Hello Bossman
I feel the need to alert you to a pressing matter.
Nothing Dan from Marketing's head seems to be */function/*ing anymore.
I have a lot of evidence, but not enough time to */sort/* through it.
Should I just send it to you directly */(/*although I'm sure you have about a thou*/s/*and other things to do*/)/*?
Nah, here's it in a summary:

Dan seems to be overly facinated by the */{/* key on his keyboard, and presses it many times a minute.
He */return/*ed his new Galaxy */s/*4, after trying to eat it, multiple times.*/.

/*When Dan was tasked to */sort/* through the Haberson account, he attempted to stab his computer multiple times with a ruler */(/*he was eventually deterred by Jenny)
Everyone backed off for a few days, but we all remembered.
Later, we approached him about the incident, he claimed hostile working conditions and that he was unable to */function(/*.
I think he m*/a/*y need to see a psychatrist.

None of us feel safe to approach him on the topic again*/, b/*rining up conflict is something most of us like to avoid. (except Jenny*/)
{/*Dan was then moved to a different spot in the building, in an attempt to give him a new environment.
Despite the move he */return/*ed to his old desk every day, and wrote */a - b/* on the walls of the new spot.
We all just sort of accepted that and the layout planner gave up after a week or two.

One week we got a new employee in the office. When she went to say Hi to Dan, he screamed a - b over and over.
Not sure what his fascination is there. b-c is a much superior algorithm.

We're not really sure what caused this, but one day he switched from the { key to the */}
/*key. Dan switched back the next day.

There is an ongoing betting pool on what will happen next (general categories mostly*/)
/*Currently the betting for him stabbing an actual person is at almost $20,000.

Please do something about Dan. If anything start a reality TV show from the security tapes.

On a completely unrelated note, I love this new */}/* key, it's really neat looking. Did my keyboard always have this?
Sincerely,
Zeke*/

function sort(s) { return s.sort(function(a,b) { return a-b }); }


15
Злоупотребление комментариями делает это более очевидным.
Исия Медоуз

14

Dogescript

Это в основном английский, верно?

shh oooot! my  keyybr oad is brokn. i ne ed neew 1.
such fixs much keys
keys dose sort
wow keys

переводится как:

// oooot! my keyybr oad is brokn. i ne ed neew 1. 
function fixs(keys) {
    keys.sort();
    return keys;
}

15
Я думаю, что ваш босс уволит вас, если вы напишите так ...
TuxCrafting

10

LiveScript

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

# Mr. Boss,
#
#     So, I'm done with this job. It is driving
#     me crazy. We aren't allowed to have *any*
      fun =#(. I am planning on leaving this
#     company while you all poorly attempt to
#     sort all this out. Also, I would like to
#     mention that a specific single bit in the
       sort # for your in-house algorithm gets
#     inverted. Happy hunting while I have fun
#     programming for another company far more
#     grateful than yours.
#
# Best regards,
# Your handy little programmer-turned-secretary.

1. Его стандартная библиотека Prelude.ls имеет встроенную функцию сортировки.
2. Обратите внимание на два отсутствующих хэша (комментарии). Первое гораздо более очевидно, чем второе.

Он анализируется следующим образом: "fun = sort" и компилируется в это: "var fun; fun = sort;"


Кстати, подсветка синтаксиса не удалась. Один из комментариев не проанализирован правильно.
Isiah Meadows

10

Объезд (не конкурирующий; -;)

Dear Boss Man
I thought I had put your recovered files on drive z.
In reality it was downloaded to the main drive, C://users/boss/recovery. Sorry for the confusion!

Переводчик Постоянная ссылка

Как это устроено:

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

Упрощенная версия:

Объезд

Dear Boss Man             
             z.
            ://

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


5

JavaScript (ES6)

      (a) => /*----------*\ <= (a)
       |      Announcement      |
  .   (a)    \*----------*/    (a)   .

 sort (/* YOUR DOCUMENTS BEFORE 2/5 )*/

     ($,_) => /*--------*\ <= (_,$)
      |         Warnings         |
 //  (_-$)    \*--------*/    ($-_)  //

      /*( NO SMOKING IN OFFICE */)

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

Да, я знаю, что босс любит необычные украшения в своих объявлениях, поэтому я набрал тексты заглавными буквами и окружил их причудливыми символами :)

PS. Почему офис все еще использует TELNET?

На самом деле, удаление комментариев и лишних пробелов превращает материал в (a)=>(a).sort(($,_)=>($-_))то, что он намеревается; P


3

√ å ı ¥ ® Ï Ø ¿

Я только просмотрел другой ответ, но я все еще думаю, что мой, безусловно, лучший (не мы все).

isolate quickly! Then read this short story: Funny Steve Jobs
. A Short Story
 by This Guy. Steve Jobs looked at the heavy stone in his hands and felt annoyed. He walked over to the window and reflected on his sunny surroundings. He had always loved nice Silicon Valley with its huge, hurt houses. It was a place that encouraged his tendency to feel annoyed. Then he saw something in the distance, or rather someone. It was the figure of Bill Gates. Bill was a happy monster with young heads and old feet. Steve gulped. He glanced at his own reflection. He was a funny, irritating, beer drinker with skinny heads and ginger feet. His friends saw him as an abundant, average angel. Once, he had even made a cup of tea for an unusual old lady. But not even a funny person who had once made a cup of tea for an unusual old lady, was prepared for what Bill had in store today. The sun shone like coding dogs, making Steve violent. As Steve stepped outside and Bill came closer, he could see the anxious smile on his face. Bill glared with all the wrath of 9230 stupid healthy humans. He said, in hushed tones, "I hate you and I want money." Steve looked back, even more violent and still fingering the heavy stone. "Bill, you stole my idea," he replied. They looked at each other with angry feelings, like two creepy, curried cats challenging at a very sad party, which had jazz music playing in the background and two annoying uncles doing to the beat. Steve regarded Bill's young heads and old feet. "I feel the same way!" revealed Steve with a delighted grin. Bill looked sad, his emotions blushing like a charming, cheerful computer. Then Bill came inside for a nice drink of beer. THE END

2

Groovy

'Dear Bossman,
I finally found the formula to calculate the salary for the new employees.
In the salary software just enter the following:'
print "${(args.toList()*.toInteger()).sort()}"'
Sincerely,
Employee'

13
Вы не должны писать код. Это код.
Зак Мертес

7
Мне очень нравится этот. Это просто скрывает код на виду.

4
LOL вы должны поставить «Я нашел формулу Excel » тогда. Хотя я хорошо знаком с Excel, эта ссылка никогда не приходила мне в голову.

5
@ kuroineko В формулах Excel нет такого синтаксиса программирования, не так ли?
Маленький ребенок

3
8 голосов против и 9 голосов против? Ух ты; это спорно.
Ypnypn

2

05AB1E

Dear Boss‚

I hope I{qualify for this new function. I once again want to sincerely apologize for my earlier secret message.
Thank you for giving me the opportunity to work at this apartment instead.
I must admit it's hard to resist the urge to write code, but I'll do my best.

Thank you.

Kind regards from your new secretary,
Kevin Cruijssen

Попробуйте онлайн. (TIO использует устаревшую версию, которая немного быстрее. Однако работает так же, как и новая версия 05AB1E.)

Объяснение:

05AB1E код игнорирует символы новой строки и пробелы за пределами строк или сжатой строки / чисел (за исключением случаев использования (if-) else-оператора, который я только что обнаружил при более ранней попытке создания этой программы ..>.>), Поэтому давайте сделаем то же самое в этом объяснении.

DearBossIhope # These are all no-ops; they do execute, but won't affect the output:
D              #  Duplicates the (implicit) input-list
 e             #  Calculates the number of permutations of each item in the list
               #  (NOTE: this might time-out depending on the values in the input-list)
  a            #  Check if these numbers are letters (becomes a list of 0s / falsey values)
   r           #  Reverse the items on the stack
    B          #  Base conversion
     o         #  Raise 2 to the power of each number
      s        #  Swap the top two items on the stack
       s       #  Swap the top two items on the stack
              #  Pair the top two items
               #  (NOTE: This is not a regular comma (,), since that would print the top of
               #   the stack to STDOUT, which we of course don't want here.)
         I     #  Push the input-list again
          h    #  Convert each value to hexadecimal
           o   #  Raise 2 to the power of each integer value
            p  #  Check for each if it's a prime
             e #  Calculate the number of permutations of each item again

I{q            # Then the actual program comes:
I              #  Push the input-list
 {             #  Sort it
  q            #  Stop the program
               #   This makes everything that comes after it no-ops
               #   And will output the top of the stack implicitly as result

Попробуйте онлайн с добавленным режимом отладки, чтобы увидеть все это в действии.


1
+1 за естественность.
ВысокоРадиоактивный

1

Zsh

Я не знаю, был ли код или творческое письмо труднее.

: RE: The state of the evaluation process; eval `#problems'

: While I appreciate your enthusiasm, going to `print `
: this for the world to see isn't helpful in the long run.
: Please, don't make any more enemies than you already have.
:
: > People seem to just want that `'$'`: It's a big problem
: > which needs to be resolved. People need to buy into the
: > company's team-based philosophy `'{'`: ... ''}''
:
: While I do not deny that people "just want that '$'",
: I absolutely disagree that it's a _bad_ thing. Employees
: should not be guilty for wanting to leave for greener
: pastures, so you should try and provide _some_ incentive
: to stay.
:
: > And yet everyone want's to just check "(y)" or `'(n)'`
: > without giving _any_ further feedback... You're too LAZY!
:
: I want to stop you here. Accusations like this against my
: team are _not_ to be tolerated. We do a _lot_ behind the 
: scenes which you _clearly_ aren't aware of. Please refrain
: from `'@-ing'' any of my team, and think with a bit more
: empathy next time, thank you.

-- Gamma :-}'

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

  • Примечание: это создаст файлы с именами «Люди» и «без» в каталоге, из которого он запущен.

  • С первой строки вы можете увидеть eval, а затем обратные галочки.

  • # commentsпродолжить до конца строки, не допуская разрешения кавычек или обратных кавычек, поэтому мы используем :no-ops для отступа.

  • Стандартный шаблон, который мы используем на протяжении всего этого `: lots of filler text.... : more filler text, then an important `'X'` : back to the garbage

  • В конце есть одно исключение: все от @-ingпоследнего }не запрещено.

  • Когда подстановка завершена, она гласит: eval print $'${(n)@-ing any of my team, and think with a bit more\n: empathy next time, thank you.\n\n-- Gamma :-}'«Мусор после @ничего не делает, так что это эквивалентно print ${(n)@}, что является просто числовой сортировкой параметров.



0

JavaScript (Node.js)

Attachment => (

`Date: 2019/5/30

Dear my Majestic Boss,

Re: Business Trip to Japan

I'm writing to confirm itinerary for the next trip to Japan will be as follows:

`? (Tennoji, Osaka) => ("Shinsaibashi Tower", Osaka)

|| // Day 1

Tennoji [Osaka, "sort"] 
(Hotel = (JPY$14112, Taxed) => `So I will stay here for one night, and I will be charged this price:

`? JPY$14112 + (0 - Taxed) 
:`This is the total price and what I will claim afterwards.`

):0) (Attachment)

|| // Day 2

"Shinsaibashi Tower" [Conference, `NOT FOR SHOPPING`]

`I will be coming back on Day 2, so the trip will not cost too much hopefully.

Best regards,
The-former-programmer`

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

Хорошо, это маршрут, по-видимому. Еще один ответ в другом направлении через год.

Действительно важная часть Attachment => (Tennoji => Tennoji["sort"]((JPY$14112, Taxed) => JPY$14112 - Taxed))(Attachment)


-1

C #

// Дорогой Босс,

/*i have a */public/*shed a*/ List /*of*/ <string>/*s
to*/ Sort /*for you on our internal website
please take a look at the */(List /*of*/ <string>/*s and*/ check){
/*them for company restrictions. please also */check /*the */.Sort();/*ing of the     list*/
/*furthermore could you please */return /*an email to me in which you state your */check/*ing state*/;}

// sincerely your slave Rob

5
Боже мой, это трудно читать ...
Beta Decay

12
Выглядит слишком кодовым
Isiah Meadows

2
Очевидные комментарии :) Первая строка читается public List <String>без особых хлопот :)
Martijn
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.