Category: авто

Category was added automatically. Read all entries about "авто".

nyaload

(no subject)

После написания 300-строчной программы на своём кривом диалекте схемы, я понял, что мне не нравятся:

1) car ( http://en.wikipedia.org/wiki/CAR_and_CDR )
2) cdr
3) cons
4) скобки
5) циклы на tail-рекурсии
6) рекурсия через (λx.x x)
7) протаскивание state (заполнение map-таблицы) через три вложенных fold.
8) реализация массивов через односвязный список
9) реализация массивов через дерево (не реализовал)


Без синтаксического сахара, позволяющем писать на immutable functional языках "примерно как на императивных" - вообще не жизнь.
nyaload

лямбда в C++ - уже работающая реальность

В питоне у функций сортировки, min(список) есть параметр key, это callback-функция которая говорит, по какому признаку отсортировать. У сортировки есть ещё параметр cmp, callback в котором пользователь задаёт свою функцию сравнения двух величин. Так вот, я им ни разу не воспользовался. Всегда было достаточно key.

В связи с чем обидно, что у C++ных std::sort, std::min_element это указать невозможно, в коде callback нужно указывать в два раза больше чем хочется.

Кстати, в C++ появились лямбда функции, их уже можно использовать в gcc4.что.то.там и Visual C++ 2010.

Теперь что бы найти в массиве наиболее близкий к val можно писать
int *a_min = std::min_element(a_begin, a_end, [=](int x, int y) { return abs(x-val) < abs(y-val); });

Можно в вашу велосипедную корпоративную библиотеку утилит добавить min_by_key, что бы писать
int *a_min = my::min_by_key(array, [=](int x) { return abs(x-val); });

Раньше, что бы воспользоваться уже написаным std::min_element, приходилось писать мего-функтор где-то на страницу кода выше, за пределом экрана. Про boost::* молчу. Это приводило к тому, что рукописный цикл был и читаемей, и проще писался. Единственный алгоритм который сцали писать с нуля - это std::sort. Теперь же можно писать просто и наглядно, при code-review не нужно анализировать, сделали ли типичную опечатку в коде поиска минимума, что будет если список пустой.

Вы всё ещё пишете цикл нахождения минимального элемента каждый раз руками в цикле? Лямбда-функции и утилитные алгоритмы уберут циклы и опечатки в циклах, и сделают из пяти строк - одну!

upd: поторопился, сейчас распространён gcc4.4, а лямбды сделали в gcc4.5, который вот-вот будет в дефолтных дистрибутивах. Надо перепостить это через полгодика :)
nyaload

Мошенство

Сегодня позвонили моей маме, сказали что на радио Хит FM она выиграла автомобиль Audi. Она их сразу послала в [.....] и на[...] (у меня уши в трубочку свернулись). Делайте как моя мама!

Популярное в последнее время мошенничество: звонят по телефону, сообщают что вы выиграли [автомобиль,ноутбук,мобильник], для доставки надо перевести деньги с какой-либо карты экспресс-оплаты на нужный телефон/счёт/.... или сообщить её код активации. Или иная причина того, что бы вы передали деньги (ваш знакомый попал в аварию/в КПЗ/нужна донорская кровь/нужны деньги на операцию/...)
Не попадайтесь!
Небольшой поиск по интернету дал например такую форумную тему или такую.

updated: Оказывается, ещё существуют поддельные терминалы оплаты: http://www.antigsm.ru/index.php?showforum=42