Состязания по пряткам в программировании.
Найди пропущенный символ в двух метрах исходников.
Лучше всего спряталась точка с запятой.
Найди пропущенный символ в двух метрах исходников.
Лучше всего спряталась точка с запятой.
если это будет скобка, не скомпилируется же
А чего это точка с запятой будет самым часто теряемым символом? Сейчас почти во всех IDE есть автокомплит для точки с запятой, а проебать скобку, когда ты пишешь какое-то длинное выражение или вызов гораздо хуже.
Скобки даже в саблайме закрываются, а вот IDE не все используют.
* автозакрываются
Саблайм — это всё-таки продвинутый редактор, уже практически IDE по возможностям. Говорить про него «даже» немного некорректно.
И, тем не менее, точку с запятой там проебать вполне легко.
Ну, как бы сказать помягче. Саблайм (или notepad++ для тех, кто на windows сидит) - один из самых простых редакторов для кодинга. Меньше уже просто некуда, в каком-нибудь блокноте или нано даже подсветки синтаксиса нет. И если прогер сидит и кодит в аналоге textarea браузера, надо гнать его и насмехаться над ним. Разве что по ssh через vim нужно конфиги поправить, но это уже другая история.
У vim есть подсветка синтаксиса.
самым трудно нахидимым, например тут:
if (a == b); a=2;
if (a == b); a=2;
Для этого есть стандарты, по которым пишут
if (a == b)
{
a=2;
}
if (a == b)
{
a=2;
}
if (a == b) {
a=2;
}
a=2;
}
if ( a == b ) {
a = 2;
}
a = 2;
}
Я вас умоляю, вы еще скажите что у вас ведь код задокументирован.
Нормальный код не особенно нуждается в документировании, если это не апи любого типа.
И да, в нашем случае стандарт не поможет
if (a == b);
{
a=2;
}
if (a == b);
{
a=2;
}
Нет, в этом случае компилятор будет грязно ругаться на твои {} в середине кода без предыдущего выражения.
Поэтому в Perl можно написать или так:
if ($a == $b ) { $a = 2}
или так:
$a = 2 if ($a == $b);
И это касается не только if, но и for/while.
if ($a == $b ) { $a = 2}
или так:
$a = 2 if ($a == $b);
И это касается не только if, но и for/while.
Идея
1. Перенесет присваивание на новую строку при формате
2. Выделит условие желтым цветом с хинтом "потенциально бессмысленный код"
1. Перенесет присваивание на новую строку при формате
2. Выделит условие желтым цветом с хинтом "потенциально бессмысленный код"
Поэтому в Python ее порезали найух!
А в VBA её отродясь не бывало!
Шутка про наиболее часто забываемый символ в коде. Поставишь лишний - нихрена не работает, не доставишь там где надо - тоже нихрена не работает. Хотя первое и второе место можно поделить в зависимости от языка и количества скобок.
По слухам в LISP на первом месте будет круглая скобка.
В LIPS они займут все призовые места, да и не призовые тоже.
Ну только если в блокноте писать
Ещё и ручкой шариковой...
Вот вы, Говножуй, смеетесь, а я, будучи школьником, писал программы в тетрадке шариковой ручкой. А потом доказывал училке, что скомпилируется и будет работать. Потому что информатику в школе ввели, а компьютерный класс не ввели.
У меня в колледже компьютерные классы были, но контрольные мы писали на листочках. И это чертовски эффективно в плане обучения.
Я тебе больше скажу, в егэ по информатике до сих пор ручкой на листочке пишут, и только попробуй хоть один символ пропустить, всё задание сразу обнуляется
К счастью, я не застал ужасы егэ.
А вот и не до сих пор
Я достаточно юн и воспоминания свежи, а от тебя я попросил бы пруфы
Только вчера со знакомым преподом разговаривал, теперь говорит дают компилировать на компе. Он говорил, что такая херня еще с 2012 года в тестовом была режиме, но уже не в тестовом и все только так и сдают.
так я и сейчас пишу, псевдокод конечно, там требования к синтаксису: "чтобы человек мог понять", но всё же код и на листочке.
А кто сказал что это был "смех"? Это был взрыв из прошлого... Кстати, если ручки были гелиевые, можно было синтаксис выделять )
мой код улыбается глядя на меня...
Только половина кода улыбается глядя на тебя. Если у тебя улыбается весь код, то тебе надо серьёзно его пересмотреть.
Нет времени рефакторить, выпускай в продакшн!
Потом "грустный" патч выпустим
Причем улыбается во все стороны
Это если ещё про регулярные выражения не вспоминать. Что-нибудь простенькое, например, вот такое:
^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$
^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}$
Это, при всём уважении, не язык программирования.
Это, при всём уважении, почти в любом языке программирования есть как составная часть. И если приходится много работать с текстом (писать парсер, шаблонизатор, статистический анализатор, что угодно ещё), то от регулярок никуда не деться.
Всегда можно собрать свой велосипед из костылей.
Хочешь сказать, что-то из этого можно сделать без регулярок?
_Всё_ что можно сделать регулярками, можно сделать из кода.
Потому что за обработкой регулярок стоит код (код движка - обработкичка регулярок).
Вопрос в целесообразности применения того или иного решения.
З.Ы. "Рано или поздно, в голову программиста приходит мысль: О, эту проблему можно решить с помощью регулярных выражений! Это значит, что теперь у программиста _две_ проблемы".
Потому что за обработкой регулярок стоит код (код движка - обработкичка регулярок).
Вопрос в целесообразности применения того или иного решения.
З.Ы. "Рано или поздно, в голову программиста приходит мысль: О, эту проблему можно решить с помощью регулярных выражений! Это значит, что теперь у программиста _две_ проблемы".
Если ты не специалист, то проще написать свой парсер, чем оптимизировать регулярку.
Бля, это цитата! Это пять, это пять...
вполне язык, хоть и не тьюринг-полный
Не надо обижать Perl
А можно узнать с какого черта в этом парсере емейлов домены первого уровня только буквенные и не длиннее шести сммволов? то есть домены рф - автоматически в пролете?
Perl - достаточно уебать головой о клавиатуру и опа, программа готова, но хрен поймешь, что она делает.
Особенно, если в каком-нибудь хитром макросе в заголовочном файле в С/С++. В итоге компилятор укажет ошибку черт знает где и не одну.
Как там
#define true false
//Счастливой отладки, суки!
#define true false
//Счастливой отладки, суки!
легко поймать, так лучше
#define true (!!(__LINE__%13))
#define true (!!(__LINE__%13))
еще кто то говорил что веселым может быть замена обычной точки с запятой, на греческий знак вопроса, который выглядит так же. я правда лично не проверял.
Да это палево с предсказуемым исходом, лучше что-то вроде:
#define true ((rand() % 42) != 0)
Если известно, что rand() не будет подключена, то можно брать значение текущего указателя стэка и генерировать из него, что доставит удовольствия тому, кто будет отлаживать на синтетических тестах.
#define true ((rand() % 42) != 0)
Если известно, что rand() не будет подключена, то можно брать значение текущего указателя стэка и генерировать из него, что доставит удовольствия тому, кто будет отлаживать на синтетических тестах.
Самое весёлое это включить такой макрос в стандартные заголовки. Ну хер же кто полезет смотреть, что там в stdio.h.
Стандартные заголовки на практике не передают вместе с исходниками.
Смысл в том, что у жертвы программа будет с сюрпризом, а у всех остальных всё будет отлично работать.
Бывший коллега все волосы на жопе вырвал, пока не понял, почему у него не работает код, хотя у все всё вроде работало.
Понятно, что палево. А если в команде используется svn\git\etc, то ни один подобный прикол не пройдёт. Но как шутка в этот топик — вполне.
3е место я все таки отдал бы экранирующим символам
по моему пропущеный } намного тяжелее найти, чем ;
Без IDE и при отсутствии отступов - невозможно.
Настоящего чемпиона так и не нашли: =
Вот не надо. Если ставить первым в сравнении константу или функцию, то такая оплошность будет спокойно выявлена на стадии компиляции. А при включении определённого параметра у компилятора предупреждение будет выведено в любом случае.
Меня, кстати, именно так и учили. Хотя и не приучили толком. Когда так делаю, ощущаю себя мастером Йодой.
Ну, если говорить о типизации…
Самое запоминающееся что видел в последнее время это собако-статусы
https://httpstatusdogs.com/
https://httpstatusdogs.com/
Похоже, тестирование криокамеры прошло удачно.
Кириличная "с" - абсолютнй победитель.
Фиг там, подсветка синтаксиса рулит.
Чтобы написать коммент, необходимо залогиниться