Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 11 февраля 2012< ^ >
f[x] установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire
Конфигурация комнаты
Участники комнаты

GMT+4
[00:19:40] ermine вышел(а) из комнаты
[01:33:47] Kakadu вышел(а) из комнаты
[01:43:57] bobry вышел(а) из комнаты
[01:45:49] bobry вошёл(а) в комнату
[02:38:07] ftrvxmtrx вышел(а) из комнаты
[02:42:29] bobry вышел(а) из комнаты
[02:44:28] ftrvxmtrx вошёл(а) в комнату
[02:45:33] ftrvxmtrx вышел(а) из комнаты
[02:47:36] bobry вошёл(а) в комнату
[02:49:02] ftrvxmtrx вошёл(а) в комнату
[03:31:31] ftrvxmtrx вышел(а) из комнаты
[03:34:15] ftrvxmtrx вошёл(а) в комнату
[03:34:20] ftrvxmtrx вышел(а) из комнаты
[03:34:35] ftrvxmtrx вошёл(а) в комнату
[03:44:28] ftrvxmtrx вышел(а) из комнаты
[03:45:21] ftrvxmtrx вошёл(а) в комнату
[03:46:40] bobry вышел(а) из комнаты
[03:54:20] gds вышел(а) из комнаты
[04:44:13] letrec вошёл(а) в комнату
[05:01:54] komar вышел(а) из комнаты
[05:02:45] komar вошёл(а) в комнату
[05:26:29] Typhon вошёл(а) в комнату
[05:46:52] Typhon вышел(а) из комнаты
[05:51:51] Typhon вошёл(а) в комнату
[06:20:57] komar вышел(а) из комнаты
[06:21:23] komar вошёл(а) в комнату
[06:48:01] komar вышел(а) из комнаты
[06:49:04] komar вошёл(а) в комнату
[07:42:34] letrec вышел(а) из комнаты
[08:06:25] komar вышел(а) из комнаты
[08:07:16] komar вошёл(а) в комнату
[08:36:19] letrec вошёл(а) в комнату
[11:38:08] komar вышел(а) из комнаты: Replaced by new connection
[11:38:08] komar вошёл(а) в комнату
[11:58:13] Kakadu вошёл(а) в комнату
[12:17:17] bobry вошёл(а) в комнату
[12:22:13] ermine вошёл(а) в комнату
[12:34:31] bobry вышел(а) из комнаты
[12:44:53] bobry вошёл(а) в комнату
[12:57:21] gds вошёл(а) в комнату
[13:06:58] letrec вышел(а) из комнаты
[13:25:41] arhibot вошёл(а) в комнату
[14:55:59] Typhon вышел(а) из комнаты
[15:17:54] arhibot вышел(а) из комнаты
[15:26:52] <gds> посмотрел я (ещё тогда, когда поднимали тему) на janest's stage/unstage, как-то мутно.  в общем, ту свою старую идею запилил в кадастр, https://bitbucket.org/gds/cadastr/src/tip/src/cd_Partapp.ml , пользуюсь, канает.
пользуюсь вот для чего: если есть функция, берущая коннект к базе и препарящая операторы, то препарить, очевидно, нужно ровно один раз.  ну и вот, отпрепарили и возвращаем функцию, непосредственно обрабатывающую всякие запросы к бд.
а про реализацию -- странно, что примитив %apply не нашёлся у меня.  камло старое или его и не должно быть?
[15:47:00] Typhon вошёл(а) в комнату
[16:03:42] komar вышел(а) из комнаты: Replaced by new connection
[16:03:48] komar вошёл(а) в комнату
[16:47:51] <bobry> а где то же была либа для tnestrings на камле?
[16:48:02] <bobry> а то /me думает запилить вейлосипед
[16:59:16] <gds> погугли, только без описок.
[17:00:32] <Typhon> я не видел, я предлагал запилить, как-то
[17:02:17] <gds> да, скорее так и было, и даже знаю, где.
[17:03:55] <bobry> да я уже погуглил -- что-то пусто
[17:04:09] <bobry> значит запилю :)
[17:06:19] <gds> на итератах, конечно?  :]
[17:07:13] <bobry> хотел на стримах ващет
[17:07:49] <gds> и для каждого байта рожать option char?
[17:08:11] <gds> хотя, если производительность не важна, то на стримах тоже будет хорошо работать.
[17:08:38] <bobry> почему для каждого байта?
[17:09:24] <gds> представь, что в потоке (условный Stream.t char) у тебя строка из мульёна символов.  Как читать будешь?
[17:10:47] <bobry> ну периодически придется по чару, но после того как длина прочитана можно и кусками
[17:10:53] <bobry> или я что упускаю?
[17:11:20] <gds> как будешь читать кусками?
[17:11:56] <bobry> вот я и попался :)
[17:12:01] <gds> ага :)
[17:12:04] <bobry> take это на самом деле несколько последовательных next?
[17:12:19] <bobry> в смысле [take n]
[17:12:44] <bobry> а ведь и правда было бы прикольно заюзать итераты для такой простой задачки
[17:13:47] <gds> Stream.take -- не знаю такого.  Ну, знаешь, если через Stream.next, то исключения ловить надо будет, это обычно геморно, или Stream.empty дёргать.  А если поток не из in_channel, то он всегда для next выделяет option 'a.
[17:14:07] <gds> или is_empty дописать, тоже вариант, периодически пользовал.
[17:16:02] <gds> я бы, в общем-то, подобное делал бы только на итератах.
заодно можно было бы их пооптимизировать на частный случай "чанков из байтов", если в суровый продакшон будешь пихать.
[17:37:03] <bobry> gds: ты почему это для ocaml-iteratees до сих пор oasis не сделал?
[17:37:05] <bobry> не кошерно же
[17:38:03] <gds> ну, у меня проблем особо не было от отсутствия оазиса там.  Как-то использую и всё.
[17:38:45] <bobry> ну я вот хочу собрать -- как я узнаю зависимости напр. ?
[17:38:55] <bobry> судя по файлику lwt io, *наверное* там нужно lwt
[17:38:59] <bobry> но это ведь телепатия ..
[17:42:13] f[x] вошёл(а) в комнату
[17:47:20] <gds> сейчас мне точно нет времени-желания лепить _oasis.  либы-зависимости скинуть могу, если чо.
[18:04:12] bobry уже посмотрел в META :)
[18:07:26] f[x] вышел(а) из комнаты: Computer went to sleep
[18:44:31] Typhon вышел(а) из комнаты
[18:49:52] Typhon вошёл(а) в комнату
[18:55:52] <bobry> gds: а у тебя кроме http где нибудь еще итераты используются?
[19:02:35] <gds> bobry: да.  из публичного сходу https://bitbucket.org/gds/dumbstreaming/src/e7c1f64a6251/dumbstreaming_it.ml
[19:04:36] <gds> из неопубликованного ещё в litpro, вот: http://paste.in.ua/3856/
[19:06:23] <gds> в парвеле ещё используются, там было полезно завернуть итерат в "процесс", который получает чанки, обрабатывает их итератом и высылает результаты работы этого итерата по указанному адресу (для обработки следующими процессами).
[19:08:25] <gds> из неопубликованного, но того, что я навряд ли опубликую -- разный мелкий парсинг, который с манаткой Identity очень даже работает.  Простая обработка строк, файлов.  В случае, когда представляю, как изобразить потоковую обработку, конечно.  Кроме того, во всех случаях, где мне нужны utf8-символы, я использую enumeratee char uchar 'a, около трёх случаев на практике было.
[19:11:55] <gds> кроме того, для извращений очень годится свёртка потока моноидом.  Мне нравится.  Только моноид лучше брать "расширенный", с добавленными inj/proj (premap/postmap, по вкусу).
[19:12:12] <bobry> шо должны делать inj / proj?
[19:12:20] bobry знает только обычных монойдов :)
[19:14:19] <gds> вот примерно это: http://paste.in.ua/3857/
[19:15:24] <bobry> что то сходу не могу представить когда это полезно
[19:17:32] <gds> представь, что на входе -- список целых чисел [1;2;3].  На выходе надо получить строку "[1;2;3]".  Расширенный моноид это обеспечит легко.
[19:18:44] <bobry> а если по взрослей какой нибудь пример?
[19:20:08] <gds> любой, где нужна предобработка всовываемых значений и постобработка получаемого значения.
[19:45:15] Typhon вышел(а) из комнаты: Replaced by new connection
[19:45:35] Typhon вошёл(а) в комнату
[20:05:51] letrec вошёл(а) в комнату
[20:43:25] letrec вышел(а) из комнаты
[21:26:47] ftrvxmtrx вышел(а) из комнаты
[21:28:44] ftrvxmtrx вошёл(а) в комнату
[21:37:47] qrntz вошёл(а) в комнату
[21:38:02] <qrntz> Kakadu: здесь?
[21:38:14] <Kakadu> qrntz: угу
[21:38:47] <qrntz> добавил в moc парсер yaml
[21:38:56] <qrntz> для json биндинги не очень
[21:39:14] <qrntz> то есть даже слишком очень — оверкилл, я бы сказал
[21:39:17] <Kakadu> да мне пофиг --- ни того ни другого не видел
[21:39:45] <qrntz> ок, просто счел нужным сообщить
[21:40:12] <qrntz> сейчас уже не буду так тормозить — защита работ прошла, все такое
[21:40:30] <Kakadu> Ну круто
[21:40:40] <Kakadu> а мне своё пилять и пилять
[21:41:15] <qrntz> щито поделать.
[21:54:38] <bobry> а щито за moc?
[22:07:54] <Kakadu> bobry: yaml в C++ + qml + ocaml
[23:03:37] qrntz вышел(а) из комнаты
[23:55:01] bobry таки засел за туториал по итератам
[23:56:05] <bobry> gds: а почему принято использовать >>% для работы с вложенной монадой, а не какой нибудь lift как в х-ле?
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!