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

GMT+4
[00:08:31] <gds> но ведь тупо переписать map.ml* так, чтобы подставлять туда в каждый вызов нечто, хранящее как тип, так и compare -- это же слишком онально?
с другой стороны, в extlib'овском pmap.ml(?) как раз похожую проблему решали, которую таки решили бы, если бы изначально так сделали (например, подсунули бы type 'a comparable;  { compare = Pervasives.compare }.
с третьей же стороны, дизайн на функторах хорош тем, что невозможно ошибиться, подставив в merge вторую мапку с неправильным/другим compare -- не сойдётся по типу Map.Make(T{1,2}).t 'v.  И это круто, иначе пришлось бы в рантайме матчить, а это плохо.
я сегодня отписал тонны лишнего кода.  Мне это не очень понравилось по эффекту, но, в целом, приемлемо по процессу.
теперь думаю, в какую сторону идти.
точнее, подумаю в кроватке.
а вы, если будут идеи, намекните.
если там приличное направление будет, конечно.
[00:12:51] Kakadu вышел(а) из комнаты
[00:12:57] gds вышел(а) из комнаты
[00:19:09] arhibot вошёл(а) в комнату
[00:19:15] arhibot вышел(а) из комнаты
[00:36:31] shaggie вышел(а) из комнаты
[00:36:52] zert вышел(а) из комнаты
[02:26:22] Typhon вышел(а) из комнаты
[03:37:21] letrec вошёл(а) в комнату
[04:40:37] letrec вышел(а) из комнаты
[08:24:22] gds вошёл(а) в комнату
[08:35:21] <gds> может помните, говорили про "парсер и принтер из одного определения"?  ну вот, достижения народного хозяйства: http://hackage.haskell.org/packages/archive/boomerang/1.1.1/doc/html/Text-Boomerang.html
[08:54:40] zert вошёл(а) в комнату
[10:41:28] komar вышел(а) из комнаты: Replaced by new connection
[10:41:28] komar вошёл(а) в комнату
[11:32:04] <f[x]> помню какой-то бумеранг Пирс пилит
[12:01:04] ermine вошёл(а) в комнату
[12:13:39] klapaucius вошёл(а) в комнату
[12:29:24] <gds> вроде да, ну и "гормонею" тоже.
[12:57:26] klapaucius вышел(а) из комнаты
[12:58:27] Kakadu вошёл(а) в комнату
[12:59:58] <gds> по идее, будет весьма ожидаемо, если я обзову show выдачу культурной строки, dump -- полуразумную автоматически-генерируемую выдачу, полезную для технических целей скорее, по read(?) -- преобразование строки в значение с выдачей исключения типа Read_error of string (или of exn?  учитывая, что Printexc.to_string в новых версиях умеет многое.)?
[13:08:29] <ermine> Kakadu: занят? можно повторить компиляцию и посмотреть где валится
[13:14:43] <Kakadu> ermine: сейчас
[13:15:13] <Kakadu> ermine: да. давай
[13:48:50] <ermine> Kakadu: запустила
[13:48:56] <ermine> Kakadu: приделай -clean
[13:52:58] <gds> интересно.  Map.cardinal vs Hashtbl.length.  Да и вообще, какая _длина_ у хеш-таблицы?  И, главное, что брать за стандарт для "коллекции отображений 'k -> 'v"?  Имхо вообще count..
[13:59:28] shaggie вошёл(а) в комнату
[14:02:08] bobry вошёл(а) в комнату
[14:19:22] <f[x]> ты ещё Oh(no) характеристики учти
[14:20:26] <ermine> f[x]: так ты в gtk шаришь?
[14:24:44] <ermine> похоже, не шарит
[14:24:48] <ermine> ну придется искать
[14:25:15] bobry вышел(а) из комнаты
[14:26:30] <gds> f[x]: недопонял.  Понятно, что они разные, но это нормально ведь, структуры данных тоже разные.
[14:37:09] <gds> f[x]: вчерашняя бага с objsize вылечилась?  чото вспомнил только сейчас.
[14:37:11] Typhon вошёл(а) в комнату
[14:52:11] <f[x]> gds: угу, бага вылечилась
[14:52:27] <f[x]> ermine: не шарю
[14:52:51] <f[x]> gds: ну если ты обобщённый интерфейс к данным делаешь, а O разное - это печально будет
[14:53:58] <Kakadu> что, гитхаб опять лежит?
[14:54:27] <Kakadu> фу, вроде прошло
[14:55:26] <zert> гитхабокопец наступает
[14:55:33] <zert> битбукет стал уметь в гит
[14:55:35] <Typhon> все на битбакет!
[14:55:45] <zert> да
[14:55:50] <Typhon> в приватные репки
[14:55:57] <gds> f[x]: слишком разное O() всегда.  Через слишком разные места всё работает.  То есть, с одинаковым O() всегда-везде -- только идентичные структуры данных, ну и остальные редкие вещи, типа "добавить элемент в список" = "добавить элемент в Queue" (да и то, из-за грамотной имплементации Queue).
Вот поэтому я хочу потом туда забабахать runtime profiling с выбором лучшей структуры.
[14:56:21] <gds> то есть, Map по сравнениям работает, Hashtbl по хешу, уже охрененная разница.
[14:56:27] klapaucius вошёл(а) в комнату
[14:57:08] <f[x]> ну так да, поэтому они и разные, поэтому мне и неочевидно ччто их можно обобщить как-то больше чем самые простые операции
[14:58:41] <gds> а мне хочется их обобщить настолько, насколько это позволит мне в простых случаях (например, отображение 'k -> 'v) перетыкать имплементации, конструируя другой объект.
[15:36:58] letrec вошёл(а) в комнату
[15:59:02] letrec вышел(а) из комнаты
[16:00:09] shaggie вышел(а) из комнаты
[16:00:12] ermine вышел(а) из комнаты
[16:01:29] ermine вошёл(а) в комнату
[16:02:28] letrec вошёл(а) в комнату
[16:20:19] shaggie вошёл(а) в комнату
[16:38:27] ermine вышел(а) из комнаты
[16:42:25] ermine вошёл(а) в комнату
[17:15:12] ermine вышел(а) из комнаты
[17:54:16] <gds> ничего нового и даже хорошего, но интересно, кто-нибудь такое у себя велосипедил/факторил?  (построение массива с заранее известной длиной)  http://paste.in.ua/3152/  (дисклизмер: код не тестирован, но компилируется.)
[18:00:31] <Kakadu> мудрено как-то
[18:25:47] <gds> Kakadu: мудрёно -- это построение массива с неизвестной заранее длиной.  Пока схалявил, Queue + .iter.  Но, если будет лажово, придётся по "чанкам" выделять, что ли.
[20:06:36] zert вышел(а) из комнаты
[20:17:58] Typhon вышел(а) из комнаты
[20:32:49] Typhon вошёл(а) в комнату
[20:32:51] <Typhon> http://twitter.com/#!/rich_4711/status/106757231013412864
[20:33:05] Typhon вышел(а) из комнаты
[21:03:40] letrec вышел(а) из комнаты
[21:58:24] gds вышел(а) из комнаты
[21:58:35] shaggie вышел(а) из комнаты
[22:26:08] ermine вошёл(а) в комнату
[22:49:27] shaggie вошёл(а) в комнату
[22:50:13] ermine вышел(а) из комнаты
[23:36:14] Typhon вошёл(а) в комнату
[23:54:00] Typhon вышел(а) из комнаты: Replaced by new connection
[23:54:02] Typhon вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!