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

GMT+4
[00:00:27] Andrey Popp вошёл(а) в комнату
[00:26:19] tilarids вышел(а) из комнаты
[00:27:11] tilarids вошёл(а) в комнату
[00:46:01] Andrey Popp вышел(а) из комнаты
[00:50:11] Andrey Popp вошёл(а) в комнату
[00:59:53] komar вышел(а) из комнаты
[01:01:36] komar вошёл(а) в комнату
[01:19:55] f[x] вышел(а) из комнаты
[01:22:23] f[x] вошёл(а) в комнату
[01:30:56] dzhon вышел(а) из комнаты: Replaced by new connection
[01:30:56] dzhon вошёл(а) в комнату
[01:34:42] <gds> круто-то круто, главное круто написать, вот что думаю.  Но там будет говно с мёдом приблизительно в равной пропорции, хорошо смешанное.
[01:36:57] <gds> strangeloop -- интересные ребята.  Откуда они?  Кто его знает.  Доклады, по названиям, -- просто отпад.  Докладчики -- умные люди.  Потрясающие презентации.
[01:38:12] <gds> Andrey Popp: но это я показал gadt с явным значением-свидетелем, в новых окамлах без него.  Говорю на всякий случай.
А так, вообще, даже не знаю, зачем такое дело нужно, дерево с типами.  Ну, привязал, а дальше что делать?
[01:52:07] Kakadu вышел(а) из комнаты
[02:05:51] dzhon вышел(а) из комнаты
[02:15:40] Andrey Popp вышел(а) из комнаты
[02:17:03] ftrvxmtrx вышел(а) из комнаты
[03:52:42] letrec вошёл(а) в комнату
[04:18:02] ftrvxmtrx вошёл(а) в комнату
[04:40:43] Typhon вышел(а) из комнаты
[04:41:14] Typhon вошёл(а) в комнату
[04:47:47] letrec вышел(а) из комнаты
[05:02:23] f[x] вышел(а) из комнаты
[07:57:58] ermine вошёл(а) в комнату
[09:41:01] dzhon вошёл(а) в комнату
[09:45:39] komar вышел(а) из комнаты: Logged out
[09:53:08] komar вошёл(а) в комнату
[10:42:12] Typhon вышел(а) из комнаты
[11:06:32] Sun][ вошёл(а) в комнату
[11:17:40] Andrey Popp вошёл(а) в комнату
[11:18:26] <Andrey Popp> gds, мне нужно хранить в узлах дерева две функции — одна вычисляет аргумент для другой
[11:34:23] Typhon вошёл(а) в комнату
[12:06:57] Typhon вышел(а) из комнаты: Replaced by new connection
[12:07:21] Typhon вошёл(а) в комнату
[12:09:38] Typhon вышел(а) из комнаты: Replaced by new connection
[12:09:59] Typhon вошёл(а) в комнату
[12:13:16] Typhon вышел(а) из комнаты
[12:14:36] Typhon вошёл(а) в комнату
[12:29:49] Kakadu вошёл(а) в комнату
[12:36:38] Typhon вышел(а) из комнаты
[12:37:33] Typhon вошёл(а) в комнату
[13:00:15] Typhon вышел(а) из комнаты: Replaced by new connection
[13:00:36] Typhon вошёл(а) в комнату
[15:29:42] tilarids вышел(а) из комнаты: Machine going to sleep
[16:06:25] Andrey Popp вышел(а) из комнаты
[16:14:22] klapaucius вышел(а) из комнаты
[16:17:31] Andrey Popp вошёл(а) в комнату
[16:26:01] UncleVasya вошёл(а) в комнату
[16:28:53] klapaucius вошёл(а) в комнату
[16:37:42] Andrey Popp вышел(а) из комнаты
[16:42:29] <UncleVasya> Может кому интересно будет: russianaicup.ru
[16:44:59] Andrey Popp вошёл(а) в комнату
[16:54:55] tilarids вошёл(а) в комнату
[17:07:50] ftrvxmtrx вышел(а) из комнаты
[17:12:18] Andrey Popp вошёл(а) в комнату
[17:18:01] ftrvxmtrx вошёл(а) в комнату
[17:20:30] UncleVasya вышел(а) из комнаты
[17:25:26] UncleVasya вошёл(а) в комнату
[17:41:12] Andrey Popp вышел(а) из комнаты
[18:03:02] Sun][ вышел(а) из комнаты
[18:12:20] ermine медитирует над трепанацией кода для пригодности к lazy
[18:12:20] Andrey Popp вышел(а) из комнаты
[18:30:46] Kakadu вышел(а) из комнаты
[19:03:56] Kakadu вошёл(а) в комнату
[19:13:00] dzhon вышел(а) из комнаты
[19:39:50] Andrey Popp вошёл(а) в комнату
[20:01:39] <f[x]> как такое делается? let l = [(string_of_int, 2); (string_of_float,1.);];;
[20:01:39] klapaucius вышел(а) из комнаты
[20:16:56] <ermine> f[x]: а мне тут gds этой осенью давал ссылку первоклассные монады, а там была ссылка на олеговские первоклассные модули, и это в сумме мне показало как юзать >>= одну функцию с любой монадой
[20:17:16] <ermine> f[x]: модет и ты через Repr найдешь идею для себя
[20:18:19] <f[x]> а попроще?
[20:19:49] <Typhon>   let l = [`I((string_of_int, 2)); `F((string_of_float,1.));];;  — вот так очень просто %)
[20:21:31] <f[x]> не!
[20:21:59] <ermine> ухос сколько точек с запятой
[20:22:07] <f[x]> я хочу сделать значения полиморфными
[20:22:34] <f[x]> так чтобы конкретный тип стал приватным 'а в каждой паре
[20:22:56] <ermine> module type F = sig
type t
val data :t
end
[20:23:02] <f[x]> т.е. тип списка - ((t -> string) * t) list
[20:23:07] <ermine> и добавить функции по вкусу
[20:24:34] <ermine> в data спрятан полиморфизм
[20:24:37] <ermine> наверное
[20:24:53] <f[x]> вообщем просто абстрагировать в модуль
[20:25:12] <f[x]> наверное так и сделаю, хотелось более легковесно, но логично что никак
[20:25:34] <ermine> у меня так сделан модуль сокетов (по подсказке aleksey)
[20:26:00] <ermine> т.е. модуль описывающий работу с tcp, ssl, whatever else с единым интерфейсом read, write
[20:26:34] <ermine> фокус там, что в val data : t можно запомнить что угодно
[20:28:38] <ermine> по-другому 'a. 'a * 'a -> unit как-то там
[20:30:04] <f[x]> да, именно вот этот универсальный квантификатор нужен
[20:38:27] <ermine> f[x]: моем модуле выше type t остается всегда абстрактным (снаружи)
[20:44:50] UncleVasya вышел(а) из комнаты
[20:50:26] Andrey Popp вышел(а) из комнаты
[20:53:11] Typhon вышел(а) из комнаты
[21:12:15] Sun][ вошёл(а) в комнату
[21:19:02] komar вышел(а) из комнаты
[21:19:08] komar вошёл(а) в комнату
[21:31:42] ermine вышел(а) из комнаты
[22:04:00] tilarids вышел(а) из комнаты: Machine going to sleep
[22:33:59] Andrey Popp вошёл(а) в комнату
[22:45:43] tilarids вошёл(а) в комнату
[22:57:48] <gds> f[x]:
type my_existential_type = { string_of : unit -> string };
value met_int i = { string_of = fun () -> string_of_int i };
value met_string s = { string_of = fun () -> s };
[22:57:52] <f[x]> camlp4 эксперты needed - как из ctyp list и string получить полиморфный тип?
[22:58:14] <f[x]> gds: ну это ты сразу применил, так нечестно!!
[22:58:21] <f[x]> я вообще сделал модулем
[22:58:28] <gds> не сразу!  fun () -> видишь?
[22:58:30] <f[x]> мне там надо несколько функций хранить - модули самое то
[22:58:45] <f[x]> вижу, но значение отдельно не лежит
[22:58:47] <gds> тут разницы нет -- модули, записи, объекты.
[22:58:58] <f[x]> хотя в моей постановке с ним кроме как применить ничего сделать всё равно нельзя
[22:59:02] <gds> а тебе надо значение с хрен знает каким типом?
[22:59:07] <gds> вот.
[22:59:40] <f[x]> тип известен, просто нужна коллекция из разных типов и операций над ними
[22:59:55] <f[x]> теперь вопрос про camlp4
[23:00:25] <f[x]> хочу получить ('a,'b) t из [<:ctyp< 'a >>; <:ctyp< 'b >>;] и "x"
[23:00:36] <gds> про camlp4 -- не ко мне, точно.
[23:01:21] Typhon вошёл(а) в комнату
[23:04:25] <f[x]> вариант <:ctyp< $tup:Ast.tyCom_of_list l$ $lid:"x"$ >>;;
[23:07:02] <f[x]> Printers.OCaml.print_implem <:str_item< type $c$; >>;;
[23:07:16] <f[x]> только при попытке распечатать уходить в цикл
[23:12:02] <f[x]> о, получается
[23:21:48] <f[x]> всё просто :
      let ctyp_app = List.fold_left (fun acc t -> <:ctyp< $acc$ $t$ >>) in
      ctyp_app <:ctyp< $lid:"x"$ >> [<:ctyp< 'a >>; <:ctyp< 'b >>;]
[23:42:25] <f[x]> я чего-то не понимаю - type alias не унифицируется в сигнатуре?
[23:46:31] <f[x]> хм, не
[23:47:04] <f[x]> это я уже ничего не вижу
[23:48:11] <f[x]> какие-то эти fcm вербозные больно
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!