- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
sub parse_http_date($)
{
my ($date)=@_;
my %months=(Jan=>0,Feb=>1,Mar=>2,Apr=>3,May=>4,Jun=>5,Jul=>6,Aug=>7,Sep=>8,Oct=>9,Nov=>10,Dec=>11);
if($date=~/^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$/)
{ return eval { timegm($6,$5,$4,$1,$months{$2},$3-1900) } }
return undef;
}
guest 28.07.2012 21:53 # +13
хуита 29.07.2012 08:33 # +4
Да её целиком можно выкладывать. Как сказал один мой знакомый "Проще своё написать, чем это дол ума доводить".
gost 09.07.2020 15:21 # 0
SemaReal 19.10.2017 06:02 # +1
MAKAKA 09.07.2020 15:13 # 0
Вместо
следует писать
gost 09.07.2020 15:19 # 0
UPD: Хотя, конечно, лучше не выёбываться однострочниками и написать по-человечески:
UPD2: Не заметил, что месяцы надо с нуля. Какой багор )))
gostinho 09.07.2020 15:23 # +2
gost 09.07.2020 15:24 # 0
TEH3OPHblu_nemyx 09.07.2020 15:26 # 0
guest8 09.07.2020 15:57 # −999
BOKCEJIbHblu_nemyx 09.07.2020 16:11 # 0
MAKAKA 09.07.2020 16:12 # 0
BOKCEJIbHblu_nemyx 09.07.2020 16:12 # 0
MAKAKA 09.07.2020 16:18 # 0
Он организует листовой контекст справа, а потом переводит результат в скалярный
gostinho 09.07.2020 17:14 # 0
guest8 09.07.2020 17:27 # −999
gostinho 09.07.2020 17:30 # 0
guest8 09.07.2020 17:32 # −999
gostinho 09.07.2020 17:34 # 0
Сравнил. В «PHP» читаемее.
guest8 09.07.2020 17:36 # −999
gostinho 09.07.2020 17:37 # 0
guest8 09.07.2020 17:38 # −999
gostinho 09.07.2020 17:38 # 0
guest8 09.07.2020 17:39 # −999
gostinho 09.07.2020 17:40 # +1
тогда все соснут
А в хередоке лучше по одному в строке
guest8 09.07.2020 17:41 # −999
MAKAKA 09.07.2020 17:48 # 0
Всё, я теперь за TCL
TEH3OPHblu_nemyx 09.07.2020 17:44 # 0
https://ideone.com/WuM6dg
gost 09.07.2020 17:37 # 0
Подтверждаю Иньо, «qw» не нужен.
guest8 09.07.2020 17:39 # −999
MAKAKA 09.07.2020 15:37 # +1
MAKAKA 09.07.2020 15:43 # 0
BOKCEJIbHblu_nemyx 09.07.2020 15:58 # +1
BOKCEJIbHblu_nemyx 09.07.2020 16:02 # +1
guest8 09.07.2020 16:03 # −999
MAKAKA 09.07.2020 16:22 # +1
Выводится количество строк в stdin. Кто угадает как это работает?
Подсказки:
* "-n" важен: см perl --help
* про $. можно прочитать в perldoc perlvar
BOKCEJIbHblu_nemyx 09.07.2020 16:35 # +1
А $. хранит умер последнец прочитанной строки.
MAKAKA 09.07.2020 16:37 # 0
получается
gost 09.07.2020 16:58 # 0
MAKAKA 09.07.2020 16:59 # 0
gost 09.07.2020 17:04 # 0
MAKAKA 09.07.2020 17:09 # 0
Переведи на питухон одной строчкой
gost 09.07.2020 17:13 # 0
MAKAKA 09.07.2020 17:15 # 0
jojaxon 09.07.2020 17:26 # +2
gost 09.07.2020 17:26 # 0
guest8 09.07.2020 17:31 # −999
gost 09.07.2020 17:35 # 0
Читаемость, как по мне, гораздо лучше: всё просто и понятно даже пятикласснику. Ну, разве что специфичные для «Питона» list comprehensions и f-строки имеются.
guest8 09.07.2020 17:37 # −999
gost 09.07.2020 17:59 # 0
Гвидо — пидор. Мало того, что сделал совершенно уёбищные лямбды, так ещё и reduce() в отдельный пакет убрал (а map() и filter() оставил в глобальном пространстве, лол).
MAKAKA 09.07.2020 18:09 # 0
Вообще по чесноку конечно мою задачу нужно решать авком
gost 09.07.2020 18:12 # 0
Конечно, «Питон» для таких хаков слишком прост.
guest8 09.07.2020 18:20 # −999
bormand 09.07.2020 18:20 # 0
guest8 09.07.2020 18:24 # −999
bormand 09.07.2020 18:27 # 0
guest8 09.07.2020 18:28 # −999
bormand 09.07.2020 18:29 # +1
З.Ы. Как же бесят эти ебучие подчерки. Как-будто в кишках stl копаешься.
nemyx 09.07.2020 21:36 # 0
bormand 09.07.2020 21:39 # 0
nemyx 09.07.2020 21:56 # 0
Вот на «Ди» получится довольно коротко.
BOKCEJIbHblu_nemyx 10.07.2020 07:16 # 0
fn($x) => {...}
3.14159265 09.07.2020 22:09 # 0
Опровергаю. Или там какие-то багры есть, о которых я не знаю?
>reduce() в отдельный пакет убрал (а map() и filter() оставил в глобальном пространстве)
А вот тут верно.
MAKAKA 09.07.2020 22:24 # 0
gost 09.07.2020 22:32 # 0
3.14159265 09.07.2020 22:33 # 0
Если проблема только в этом, то во многих языках используют ещё более длинное «function».
Кмк, по-настоящему уёбищные лямбды в крестах.
guest8 09.07.2020 22:34 # −999
gost 09.07.2020 22:52 # 0
Зато там можно в одной лямбде использовать три вида скобок! А в «C++20» можно будет все четыре.
MAKAKA 09.07.2020 22:54 # 0
Больше ни в одном нормальном* языке программирования так нельзя, к сожалению. А жаль.
*в одном пидарском языке можно, но мы его не будем даже упоминать
gost 09.07.2020 22:58 # 0
MAKAKA 09.07.2020 23:05 # 0
Desktop 09.07.2020 23:47 # 0
gost 10.07.2020 08:38 # 0
3.14159265 09.07.2020 23:00 # +1
gost 09.07.2020 23:08 # 0
Скорее, это просто следствие сложности крестов в целом.
В том же «JavaScript» просто нет смысла контролировать захватываемый ко-ко-контекст, потому что всё равно всё — ссылка, причём не висячая. Захватиться лишнего — похуй.
А в крестах нужно ручками всё контролировать. Реальный пример — возврат замыкания, захватывающего локальную пельменную. Если будем всё захватывать по ссылке — получим висячие ссылки, UB, кровь, кишки. Если будем захватывать по значению — мало того, что проебём весь пирфоманс, так ещё и в принципе проебёмся, потому что некоторые объекты захватывать нельзя.
MAKAKA 09.07.2020 23:09 # 0
gost 09.07.2020 23:14 # +1
Если скопировать нельзя — переместить, используя несколько страшно выглядящий «Generalized lambda capture» («C++14»):
3.14159265 09.07.2020 23:22 # 0
Право, я удивлён.
Почему не какой-то очередной упоротый, ничего не означающий значок?
guest8 09.07.2020 23:26 # −999
3.14159265 09.07.2020 23:28 # 0
* — кокозатель
& — сцылка
= — всё по значению
Можно например @ или ^
guest8 09.07.2020 23:30 # −999
vistefan 10.07.2020 11:05 # 0
gostinho 09.07.2020 23:14 # 0
nemyx 09.07.2020 23:07 # 0
OCETuHCKuu_nemyx 13.08.2020 20:54 # 0
Desktop 09.07.2020 23:48 # 0
MAKAKA 09.07.2020 23:48 # 0
Там можно, да?
Desktop 09.07.2020 23:50 # 0
Или ты что-то другое имел в виду?
gost 09.07.2020 22:29 # +1
Ну дык вместо нормального замыкания (или хотя бы анонимной функции) — одно выражение-огрызок. Реальный пример: хочу лямбду, принимающую строку и возвращающую пару (строка_в_нижнем_регистре, хэш_строки_в_нижнем_регистре). До 3.8 это можно было сделать либо наивно (повторение кода, удвоение тяжёлых операций — говно, в общем): «lambda s: (s.lower(), hash(s.lower()))», либо уёбищно: «lambda s: (lambda s_lower: (s_lower, hash(s_lower)))(s.lower())». С 3.8 дела стали чу-у-уть лучше: «lambda s: (s_lower := s.lower(), hash(s_lower))», но всё ещё очень плохо — никаких циклов, никаких присваиваний внешним пельменным.
Именно поэтому я за «JavaScript» с его однообразным свинтаксисом для всех функций и замыканий.
guest8 09.07.2020 22:33 # −999
gost 09.07.2020 22:39 # 0
Не, ну тут я питонухов поддерживаю: проблема с сишным оператором «=» в том, что его очень легко написать вместо «==» — и, что самое главное, полученная очепятка будет полностью валидным выражением, которое ещё и выполняется правильно, похеривая только дальнейшее выполнение программы. Абсолютно любой человек, который писал на си или крестах что-то сложнее «Хеллоу Ворлда», делал эту опечатку.
А вот с питоньем хером оператором моржовым так опечататься не получится.
gost 09.07.2020 22:45 # 0
3.14159265 09.07.2020 22:58 # 0
Именно поэтому я постоянно пишу константу спереди.
И именно поэтому я против неявного преобразования любой питушни в boolean.
gost 09.07.2020 23:00 # 0
ИМХО, Йода-стайл — это борьба с последствиями, а не причиной. Плюс он не спасает, когда сравниваются две мутабельных переменных.
> И именно поэтому я против неявного преобразования любой питушни в boolean.
Подтверждаю.
nemyx 09.07.2020 23:04 # +1
Вместо сравнения двух мудакбельных переменных можно сравнивать их разницу с нулём:
gost 09.07.2020 23:09 # +2
Не поможет, когда сравниваются объекты без перегруженного минуса. Векторы, например.
3.14159265 09.07.2020 23:19 # +2
Векторы (геометрические) ещё можно отнять покомпонентно.
А вот строки...
Да и минус породит новый временный объект, а это перепитушня.
gost 09.07.2020 23:21 # +1
Не, к счастью, в крестах для стандартного вектора (который «std::vector») такой операции не предусмотрено.
Хотя, конечно, если захотеть — перегрузить можно всё.
> Да и минус породит новый временный объект, а это перепитушня.
Подтверждаю.
guest8 09.07.2020 23:30 # −999
3.14159265 09.07.2020 23:37 # 0
zipWith (-)
gost 09.07.2020 23:32 # 0
https://wandbox.org/permlink/PeXsgwmcVcaRyQ2z
gostinho 09.07.2020 23:38 # 0
gost 09.07.2020 23:39 # 0
В среде крестовиков это считается очень дурным тоном.
3.14159265 09.07.2020 23:42 # +1
gost 09.07.2020 23:47 # 0
Всем спокойной ночи.
gostinho 09.07.2020 23:42 # 0
3.14159265 09.07.2020 23:50 # +2
Это как матёрому jsеру подойти и начать рассказывать что есть оператор with(Bagor){...}
MAKAKA 09.07.2020 23:51 # 0
guest8 10.07.2020 00:16 # −999
bootcamp_dropout 10.07.2020 02:54 # 0
bormand 10.07.2020 11:39 # 0
Анус себе проинформируй, пёс.
using namespace можно юзать только для своих неймспейсов и только в цпп файле. Это же как импорт со звездой в питоне или жабе. Ты даже не знаешь какие символы тебе прилетят и с чем они потом конфликтанут.
Есть же using, в котором можно указать что тебе конкретно нужно из std.
Но проще писать std::vector и не париться. Тогда читателю сразу понятно, что это не твой самодельный вектор и не бустовый.
MAKAKA 09.07.2020 23:39 # 0
gost 09.07.2020 23:46 # +2
Вот тут чувак наглядно поясняет: https://stackoverflow.com/questions/1265039/using-std-namespace (хорошо сказал: «In fact, seeing a raw vector makes me wonder if this is the std::vector or a different user-defined vector»).
XYPO3BO3 10.07.2020 00:45 # 0
gostinho 10.07.2020 00:56 # 0
MAKAKA 10.07.2020 00:57 # 0
gostinho 10.07.2020 00:59 # 0
Реальный пример приведёшь? Можно вместо std свой namespace.
MAKAKA 10.07.2020 01:04 # 0
Ну а что мне мешает сделать функцию
а потом получить из std случайно
и потом много думать почему вдруг у меня две функции
gostinho 10.07.2020 01:08 # 0
MAKAKA 10.07.2020 01:12 # 0
XYPO3BO3 10.07.2020 01:16 # 0
MAKAKA 10.07.2020 01:18 # 0
gostinho 10.07.2020 01:36 # 0
guest8 10.07.2020 01:37 # −999
gostinho 10.07.2020 01:39 # 0
MAKAKA 10.07.2020 01:42 # 0
gostinho 10.07.2020 01:43 # 0
XYPO3BO3 10.07.2020 02:37 # 0
vistefan 10.07.2020 11:47 # 0
bormand 10.07.2020 11:53 # +1
А ты их все знаешь? И какие через 5-10 лет добавят тоже заранее предсказать можешь?
TEH3OPHblu_nemyx 10.07.2020 11:59 # 0
gostinho 10.07.2020 12:06 # 0
А вообще, вы блядь сарказма не понимаете?
TEH3OPHblu_nemyx 10.07.2020 12:19 # 0
gostinho 10.07.2020 12:25 # 0
gost 10.07.2020 08:35 # +2
Ну и Макака с перегрузками багор привёл.
3.14159265 09.07.2020 23:40 # 0
Лучше Борманду это расскажи. Он стопудов не в курсе.
3.14159265 09.07.2020 23:10 # 0
Само собой не от хорошей жизни.
А вообще
1. Нужно по дефолту объявлять всё константами, а не переменными.
2. Питухи сделали правильно, но сайд-эффектное присваивание в 90% случаев не нужно
3. Неявная конвертация в bool — зло. Потому я за явный if (nullptr != ptr)
https://govnokod.ru/26754#comment555015
vistefan 10.07.2020 11:00 # +1
Пацаны, это полная хуета и парадокс блять.
Сособенно то что питух ниже предлагает со сравнением 0 == a - b
Смарити:
Почему происходит очепятка = вместо ==? Нет привычки, недоглядел, лаганула клава, комар сел на нос в это время, недавно писал на другом языке и так далее.
Так сука, если у тебя блять есть достаточно оперативки и внимания, чтобы не забыть преобразовать условное выражение в такое, где константа слева или того хуже, ноль сравнивается с разностью — ТАК ПРОВЕРЬ ТЫ УЖЕ ГЛАЗАМИ БЛЯТЬ КАКОЙ ТАМ У ТЕБЯ ОПЕРАТОР И ОТЪЕБИСЬ.
Кто-то ответит: ну, я уже привык писать константу слева, так что это не требует внимания.
Ну так а хули ты привык к такому сложному действию, а не смог привыкнуть чекать оператор сравнения?
Хуета полная.
Я щитаю, что код — это блять текст, и как редактор я могу сказать, что в тексте должна быть красота, а не один только прагматизм.
0 == a - b — это говнокод, имхо. Это то же самое, что в русском языке инверсировать порядок слов на уёбищный и трудночитаемый, лишь бы избежать ситуации, где тебе понадобится запятая (sic!) чтобы случайно не забыть её поставить.
Это парадокс. Как можно случайно не забыть сделать столько действий, которые нужны чтобы случайно не забыть сделать гораздо меньшее?
bormand 10.07.2020 11:36 # 0
TEH3OPHblu_nemyx 10.07.2020 12:24 # 0
https://ru.wikipedia.org/wiki/Мнемоника
В результате мозг оказывается забитым бессмысленной питушнёй вроде «Один бритый англичанин финики грызёт как морковку».
3.14159265 09.07.2020 22:40 # 0
Ага. Я вроде этот позор даже отдельным постом выносил.
3.14159265 09.07.2020 22:55 # 0
Какая дрянь )))