pechkin: (Default)
pechkin ([personal profile] pechkin) wrote2005-11-22 07:12 pm
Entry tags:

А придумал шимми сумасшедший, го-во-рят

Updated:

sna4ala tak:

my %missing_fields = map(map({$_ => 1} @$_), @{$data->{mandatory_fields}});


Potom tak:

	local *register = sub
	{
	    my ($rList, $idx) = @_;
	    my $sym = $rList->[$idx];
	    $rhState->{TmpData}->{ref($sym)} = {symbol => $sym, index => $idx};

	    map({map(delete($missing_fields{$_}), @$_) if grep($sym->isa($_), @$_)} @{$data->{mandatory_fields}});
	};


A potom pobeda:

return 1 unless keys(%missing_fields);


Kone4no, mozhno ew,e ubrat' koe-4to. Kto-to u4il nas, 4to net takoj programmy, kotoruju nel'zja bylo by sokratit' xotja by na 2 bajta.

[identity profile] pechkin.livejournal.com 2005-11-22 04:22 pm (UTC)(link)
Estestvenno, vna4ale nado

my %missing_fields = map(map($_ => 1, @$_), @{$data->{mandatory_fields}});

[identity profile] totev.livejournal.com 2005-11-22 05:09 pm (UTC)(link)
Конечно сработает. На выставке современного искусства, например, - это будет бомба. Или в виде граффити на мавзолее.

В своё время видел, как 4 неглупых мужика час разбирают что же делают пять строк кода на перле в скрипте, написанном в стиле "ну сильнее его и rar не сожмёт". Хороший язык перл, только пользоваться его сильными сторонами - не нужно :)

[identity profile] pechkin.livejournal.com 2005-11-22 08:23 pm (UTC)(link)
Ну вот, а Ларри как раз учит не пользоваться слабыми. Что же делать?

[identity profile] totev.livejournal.com 2005-11-23 02:36 pm (UTC)(link)
Бог его знает. В моей жизни было два запоминающихся языка, perl и xslt. Первый - шизофренически красивый, второй - язык типсов и триксов, где для каждой малой нужды есть способ сделать её через жопу, а простых способов нет, язык-квест. Ни на том ни на другом сейчас не пишу ("мы перестали лазить в окна к любимым женщинам...")

[identity profile] kouzdra.livejournal.com 2005-11-29 07:56 am (UTC)(link)
Я помню, как где-то (кажется в su.softw) зашел спор на тему компактности.
Вылезла классическая задачка - есть файл со словами, разделеннымми пробелом.
Найти самое часто встречающееся слово и вывести сколько раз оно там.

Возникли, есс-но, любители Перла с "очень коротким решением". Я попробовал написать на Haskell - к моему собственному удивлению - оказалось короче.
И без "птичьего синтаксиса" :)

[identity profile] pechkin.livejournal.com 2005-11-29 07:28 pm (UTC)(link)
Здесь проблема, разумется, только в том, что самый дорогостоящий ресурс в наше время -- это рабочее время программиста. Сколько его потратится на изучение Хаскелла и написание на нем действительно короткого решения? "День потратить, потом за пять минут долететь"?

[identity profile] gianthare.livejournal.com 2005-11-22 07:01 pm (UTC)(link)
Даже не сомневайтесь. Т.е. синтакс я не проверял, но однозначно Перл это максимальное приближение к Лиспу, доступное мэйнстримному програмисту.

[identity profile] pechkin.livejournal.com 2005-11-22 08:28 pm (UTC)(link)
Не, я уже и проверил, что работает. Это у меня, наверно, такой подростковый этап в освоении Перла проходит, увлечение стилистикой в возможный ущерб доходчивости идей. Пройдет, должно быть.

Но вот представил я себе, на кого я был бы похож, если бы писал свой парсер на лиспе... Собака бы точно домой не пускал ночевать. То есть, саму машинку Тюринга еще туда-сюда, но алгоритм анализатора -- фю-фю, дудки.

А если мечтать... то лексер следовало взять готовый на перле, Parse::Lexer, машинку парсера -- на яве, а анализатор... да тоже на яве, наверно. Или на перле. В следующей жизни -- обязательно.

[identity profile] gianthare.livejournal.com 2005-11-22 10:18 pm (UTC)(link)
У меня не прошло. Но я не так часто пишу.

[identity profile] cryinstone.livejournal.com 2005-11-23 08:54 am (UTC)(link)
Предположим, нет программы, к-рую нельзя сократить на 2 укуса (октета, байта). Тогда любую программу Х0 длиной L можно урезать на эти самые 2 байта, получая программу Х1 длиной L-2. Поскольку L - число конечное, рано или поздно на этапе (L / 2) мы получим программу длинной в 0 байтов (и то, только если изначальное число байтов - четное).

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

[identity profile] pechkin.livejournal.com 2005-11-23 03:58 pm (UTC)(link)
Коллега! Но программа не должна нести в себе информацию. Она -- указание по обработке информации; в этом случае программа нулевой длины -- тоже программа. Да еще какая.

[identity profile] totev.livejournal.com 2005-11-23 05:40 pm (UTC)(link)
По поводу пустой программы: были какие-то деятели, которые придумали язык программирования, где использовались только разнообразные пробельные символы, т.е. визуально программа на этом языке - чистый лист. Такая вот стеганография.

[identity profile] pechkin.livejournal.com 2005-11-23 03:59 pm (UTC)(link)
Вообще же я в состоянии доказать, что ряд натуральных чисел ограничен снизу. Хотя и с трудом припоминаю важность этого утверждения; а сколько нам ее вколачивал в головы страшный и ужасный доктор Эран Лондон...