Новости

Richard Bird, "Pearls of Functional Algorithm Design"
День, когда я подержу в руках эту книгу, будет самым счастливым днем в моей жизни.
2.
http://sebfisch.github.com/haskell-regexp/ и http://hackage.haskell.org/package/weighted-regexp
Дас ист фантастиш.
По ссылке есть потрясающая статья "A play on regular expressions". Хотел бы я когда-нибудь научиться так же круто писать статьи. Читается на одном дыхании, а описан в ней чрезвычайно остроумный, простой, быстрый (competitive with re2, constant-space, linear-time, без экспоненциального разбухания) и общий алгоритм мэтчинга регулярных выражений, использующий полукольца.
Мне показалось, что можно этот алгоритм сделать инкрементальным и параллельным, сопоставив каждому символу линейный (или пусть даже полилинейный) оператор, но похоже что нельзя.
Но вы все-таки посмотрите, вдруг можно. Круто же будет.
А потом еще в haskell-cafe какой-то чел быстренько написал с помощью LLVM маленький JIT-компилятор регулярных выражений по этому алгоритму, и у него получилось ваще быстро.
3.
C# крутой.
Придумал паттерн, эмулирующий джавские анонимные классы (правда код, в котором он пригодился, не пригодился). Пример:
interface IMouseListener { void OnMouseClick(Point p, int button); void OnMouseMove(Point from,Point to); } class MouseListener : IMouseListener { Action<Point,int> MouseClick { private get; set; } Action<Point,Point> MouseMove { private get; set; } void OnMouseClick(Point p,int button) { MouseClick(p,button); } void OnMouseMove(Point from,Point to) { MouseMove(from,to); } } .. widget.AddMouseListener(new MouseListener { MouseClick = (p,button) => ..., MouseMove = (from,to) => ... });
4.
В целях расширения своих знаний английского выучил монолог "To be or not to be" и теперь то и дело молодцевато щеголяю какими-нибудь словами или строчками оттуда - то в Skype status message, то еще где.
|
</> |