Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 15 мая 2010< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | voice по запросу | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:19:51] ermine вышел(а) из комнаты
[00:42:06] <ygrek> образцовый багрепорт, да
[00:58:49] <gds> я очень эмоционален!111111
багрепорт напишу, только вот не ясно, куда его слать.
[00:59:04] gds вышел(а) из комнаты
[01:35:38] npoektop вошёл(а) в комнату
[01:38:55] <ygrek> gds: сюда пиши, фигли :)
[01:48:00] ygrek вышел(а) из комнаты
[02:55:58] npoektop вышел(а) из комнаты
[10:25:12] gds вошёл(а) в комнату
[10:28:48] Kakadu вошёл(а) в комнату
[10:35:26] <gds> ygrek: вот самое простое в воспроизведении:
%OCAMLLIB%\deriving\syntax\deriving -str "type myobj = < meth : int > deriving (Show)"
даёт:
File "C:\DOCUME~1\gds\LOCALS~1\Temp\from_stringa8786e.ml", line 1, characters 42-43:
Assertion failed, file "type.ml", line 422, char 13
это deriving пока без твоих доработок, но они, вроде, не касались этого куска кода.
[10:50:03] ʇsʎɯ вошёл(а) в комнату
[11:36:33] Kakadu вышел(а) из комнаты
[11:46:13] ygrek вошёл(а) в комнату
[11:49:57] <ygrek>     | `Object of [`NYI]
видимо not yet implemented, но кажется мне должно быть не сложней чем рекорды
[12:09:16] npoektop вошёл(а) в комнату
[12:15:09] <gds> ygrek: ага, тоже так думаю.  Даже думал заняться этим, но уже задолбался для решения копеечных задач ковырять тонны левого кода.  Поэтому, если и буду делать, то сильно потом.  А в моей задаче можно обойтись параметризованными записями.
[12:40:06] <gds> мда, попробовал так, получил результат: "Instances can only be derived for recursive groups where all types in the group have the same parameters."
Помню я это ограничение, но не нравится оно мне.  И что делать -- пока не знаю.  Изворачиваться буду как-то.
[12:54:09] <ʇsʎɯ> что за дичайшую задачу ты решаешь, что тебе нужны такие хитрые штуки?
[12:57:02] <gds> задача -- не дичайшая.  Есть состояние, есть его хитрая обработка, и при этой обработке часть состояния есть смысл вынести в более легковесную структуру данных.  Соответственно, возникло желание прикрыть это состояние в тех местах, где оно исходно было, чтобы не путаться и работать только с легковесной структурой (что уже было на практике; так бы не морочился).  Думал сделать через подтипизацию объектов: <state; part> -> (<state>, <part>), затем отдельно хранить <state> без <part>, а эти <part> поместить в легковесную структуру.  Затем запаковать взад, после суровой обработки.
[12:58:27] <ygrek> а руками свою имплементацию show (или чего там) подсунуть для nyi частей?
[12:59:32] <ʇsʎɯ> я ничего не понял, можно пример?
[13:29:51] npoektop вышел(а) из комнаты
[15:15:18] Kakadu вошёл(а) в комнату
[15:30:25] <gds> пример -- http://pastebin.com/yhYd7kFZ
[15:33:34] <ʇsʎɯ> да нет, пример задачи
[15:33:45] <ʇsʎɯ> что за состояния, чьи, зачем, почему...
[15:34:16] ermine вошёл(а) в комнату
[15:36:29] 9dw0upo7na447uu вошёл(а) в комнату
[15:36:33] 9dw0upo7na447uu вышел(а) из комнаты
[15:38:13] <gds> там пока известнокакой стыд, поэтому описывать не хочу.  Понятно, что можно было бы не выделять состояния в легковесную структуру (фактически, в список состояний), а работать с ними посредством функций вместо паттерн-матчингов по списку, но это неудобно.
[15:40:28] <gds> ygrek: насчёт подсовывания -- так и получится.  сделал type my_gen 'a 'b 'c = < объект >, затем в рекурсивном определении всех типов (которые deriving) указал type my = my_gen ty1 ty2 ty3.  Предполагаю, что оно при печати значения с типом my будет вызывать функции модуля наподобие Show_my_gen.  Вот тогда и погляжу, что там надо будет дописать.
А ещё недавно в очередной раз обдумывал твою идею с generic print, где print expr => "ignore (let _x = expr in ())" или как-то так.  Понравилось, надо бы ещё подумать :]
[15:43:17] <ygrek> угу, будет Show_my_gen, я это часто использую
[15:43:31] <ʇsʎɯ> gds: а так ты хочешь типа кратко матчить агреггатное состояние нескольких "переменных"?
[15:43:48] <gds> ygrek: а может подскажешь, что минимальное надо определить в модуле, чтобы оно печатало?
[15:45:27] <ygrek> gds: сходу не скажу, сделай type x =int * int deriving(Show) и по аналогии
[15:46:28] <gds> да, там фактически список записей, в каждой из которых ещё запись, в которой поле типа sometype option.  Эти option'ы кладу в список, матчу как список, меняю по ходу дела всё, что надо (а обычно надо много менять), и потом планирую пересоздавать все пары записей так, чтобы отобразить список обратно в те поля с типом sometype option, явно прописывая None там, где список закончился.  Мутно, да.
[15:47:06] <gds> ygrek: понял, так и сделаю, когда оно захочет печататься.
[16:13:16] <ʇsʎɯ> gds: а нельзя ли для твоих состояний придумать какую-нибудь более простую схему?
[16:29:45] 58l7l_wh_1qxo вошёл(а) в комнату
[16:29:49] 58l7l_wh_1qxo вышел(а) из комнаты
[17:09:51] n39_j7qxot3m8v вошёл(а) в комнату
[17:09:56] n39_j7qxot3m8v вышел(а) из комнаты
[17:33:02] ʇsʎɯ вышел(а) из комнаты
[17:44:15] ygrek вышел(а) из комнаты: Replaced by new connection
[17:44:16] ygrek вошёл(а) в комнату
[17:48:10] opapa111 вошёл(а) в комнату
[17:48:30] opapa111 вышел(а) из комнаты: QIP Infium: Спокойное общение
[18:03:39] qh__nzfjghw68 вошёл(а) в комнату
[18:03:43] qh__nzfjghw68 вышел(а) из комнаты
[19:20:15] <Kakadu> Kmc
[19:20:31] <Kakadu> это не туда..
[20:37:44] Kakadu вышел(а) из комнаты
[22:05:44] Typhon вошёл(а) в комнату
[23:14:29] g0dfather вошёл(а) в комнату
[23:17:13] g0dfather вышел(а) из комнаты
[23:38:16] iNode вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!