Home
Objective Caml
ocaml@conference.jabber.ru
Четверг, 17 января 2013< ^ >
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:23:22] evilbloodydemon вышел(а) из комнаты
[00:44:09] ftrvxmtrx вошёл(а) в комнату
[01:33:53] ermine вышел(а) из комнаты
[01:34:03] ftrvxmtrx вышел(а) из комнаты
[01:36:49] ftrvxmtrx вошёл(а) в комнату
[01:41:34] komar вышел(а) из комнаты: Logged out
[02:28:39] f[x] вышел(а) из комнаты
[06:43:26] zinid вошёл(а) в комнату
[06:46:20] ftrvxmtrx вышел(а) из комнаты
[07:19:55] evilbloodydemon вошёл(а) в комнату
[07:20:14] evilbloodydemon вышел(а) из комнаты
[07:57:34] evilbloodydemon вошёл(а) в комнату
[08:58:31] dzhon вошёл(а) в комнату
[09:48:30] Kakadu вошёл(а) в комнату
[10:02:19] komar вошёл(а) в комнату
[10:02:42] komar вышел(а) из комнаты: Logged out
[10:05:07] komar вошёл(а) в комнату
[10:06:49] komar вышел(а) из комнаты: Logged out
[10:11:55] Sun][ вошёл(а) в комнату
[10:15:30] ftrvxmtrx вошёл(а) в комнату
[10:18:48] Kakadu вошёл(а) в комнату
[10:59:03] dzhon вышел(а) из комнаты: Replaced by new connection
[10:59:03] dzhon вошёл(а) в комнату
[11:00:23] strobegen вошёл(а) в комнату
[11:07:05] <strobegen> Добрый день. Поставил тут в emacs touareg + typerex (точнее поставил давно просто тут вспомнил про это), все вроде работает, но если нажимаю Run Caml Top Level то меня спрашивают где находится мой ocaml (т.е просто написать там "ocaml" не достаточно), а находится он у меня в /usr/local/bin/ocaml ну и это все на маке происходит. Куда по идее нужно этот путь прописать, чтобы ocaml находился автоматом?
[11:22:14] <Kakadu> strobegen: А разве он не наследует переменные environment, из которого запущен?
[11:26:36] <strobegen> похоже, что нет, я в ~/.profile пробовал прописывать export PATH=/opt/local/bin:/usr/local/bin/ocaml:$PATH - не помогло, собственно если в терминале набрать ocaml то он запустится.
[11:36:32] <Kakadu> а если емакс из  терминала пустить?
[11:37:34] ermine вошёл(а) в комнату
[11:38:50] <strobegen> из терминала все работает
[11:40:04] <strobegen> http://olabini.com/blog/2009/12/path-problem-with-emacs-on-mac-os-x/ -вот похоже описанна подобная проблема
[11:46:28] Typhon вошёл(а) в комнату
[11:46:53] <strobegen> уже расширение сделали для решение этой проблемы https://github.com/purcell/exec-path-from-shell   - поставил, все заработало
[11:50:04] dzhon вышел(а) из комнаты
[12:02:22] Andrey Popp вошёл(а) в комнату
[12:09:45] ftrvxmtrx вошёл(а) в комнату
[12:27:53] komar вошёл(а) в комнату
[12:49:45] Andrey Popp вышел(а) из комнаты
[12:54:41] Andrey Popp вошёл(а) в комнату
[13:03:05] tilarids вошёл(а) в комнату
[13:03:34] dzhon вошёл(а) в комнату
[13:15:25] Typhon вышел(а) из комнаты
[13:47:03] Kakadu вышел(а) из комнаты
[14:01:48] Kakadu вошёл(а) в комнату
[14:15:50] dzhon вышел(а) из комнаты: Replaced by new connection
[14:15:51] dzhon вошёл(а) в комнату
[14:27:22] Andrey Popp вышел(а) из комнаты
[14:27:50] Typhon вошёл(а) в комнату
[14:34:19] tilarids вышел(а) из комнаты: Replaced by new connection
[14:34:21] tilarids вошёл(а) в комнату
[14:43:13] dzhon вышел(а) из комнаты: Replaced by new connection
[14:43:13] dzhon вошёл(а) в комнату
[14:50:19] tilarids вышел(а) из комнаты
[14:51:44] tilarids вошёл(а) в комнату
[15:35:19] Zbroyar вошёл(а) в комнату
[15:36:09] Andrey Popp вошёл(а) в комнату
[15:38:22] <Zbroyar> strobegen: thnx, а то я, как последний дикарь, все руками в .emacs прописывал :-)
[15:38:40] tilarids вышел(а) из комнаты: Replaced by new connection
[15:38:42] tilarids вошёл(а) в комнату
[15:39:16] tilarids вышел(а) из комнаты
[15:42:38] tilarids вошёл(а) в комнату
[15:44:39] dzhon вышел(а) из комнаты: Replaced by new connection
[15:44:39] dzhon вошёл(а) в комнату
[16:10:59] Typhon вышел(а) из комнаты
[16:11:23] ftrvxmtrx вышел(а) из комнаты
[16:13:42] Andrey Popp вышел(а) из комнаты
[16:16:20] Zbroyar вышел(а) из комнаты: Replaced by new connection
[16:16:21] Zbroyar вошёл(а) в комнату
[16:23:00] <strobegen> Zbroyar: ну я собственно также делал раньше, но все таки мне это надоело
[16:41:40] Typhon вошёл(а) в комнату
[16:49:38] Sun][ вышел(а) из комнаты
[17:03:33] Typhon вышел(а) из комнаты
[17:06:47] dzhon вышел(а) из комнаты: Replaced by new connection
[17:06:47] dzhon вошёл(а) в комнату
[17:27:17] Typhon вошёл(а) в комнату
[17:39:28] tilarids вышел(а) из комнаты: Machine going to sleep
[17:47:51] Andrey Popp вошёл(а) в комнату
[18:11:37] Andrey Popp вышел(а) из комнаты
[18:43:02] Andrey Popp вошёл(а) в комнату
[18:59:45] Zbroyar вышел(а) из комнаты: Replaced by new connection
[18:59:46] Zbroyar вошёл(а) в комнату
[19:02:12] komar вышел(а) из комнаты
[19:32:31] dzhon вышел(а) из комнаты
[19:39:40] bobry вошёл(а) в комнату
[19:40:24] <bobry> господа, вопрос, почему сие не работает 'type 'm pipe = Done of (unit 'm)'
[19:40:50] <ADEpt> s/unit/()/
[19:40:55] <ADEpt> а, тормоз
[19:41:25] <f[x]> revised?
[19:42:03] <bobry> не, не revised
[19:42:03] <ADEpt> bobry: это ты хочешь, чтобы у тебя 'm был kind-а * -> *, или действительно revised syntax?
[19:42:10] <f[x]> тогда нельзя
[19:42:12] <bobry> хочу чтобы был такой kind
[19:42:18] <ADEpt> тогда нельзя :)
[19:42:19] <bobry> вообще никак нельзя?
[19:42:26] <f[x]> это высочайший полиморфизм
[19:42:36] <f[x]> камло для крестьян же
[19:42:40] <bobry> ох :(
[19:43:06] <bobry> т. е. типовая переменная всегда обозначает тип с kind *?
[19:43:10] <ADEpt> да
[19:43:48] <bobry> гм, а как же monad transformers на камло пишут?
[19:43:51] <bobry> или никак не пишут?
[19:44:46] <f[x]> функторы
[19:45:00] <f[x]> но там не напрямую
[19:45:04] <Kakadu> bobry: в коре я коммутаторов не видел
[19:45:11] <f[x]> и вообще это вряд-ли юзабельно
[19:45:35] <f[x]> типично-какадемическое упражнение
[19:46:32] <bobry> ну в х-ле вполне юзабельно, тупо потому что по-другому никак
[19:46:58] <bobry> Kakadu: кого ты там не видел? у про коммутаторов только из курса алгебры знаю :)
[19:47:44] zinid вышел(а) из комнаты
[19:49:00] <Kakadu> Ну монады не коммутируют? нет. А чтобы они коммутировали что надо? Правильно, коммутаторы
[19:49:18] <ADEpt> bobry: без high-rank polymorphism не совсем понятно, какой же тип будет у предполагаемого монадного трансформера.
[19:50:10] <bobry> Kakadu: и как это работает?
[19:50:16] <bobry> ADEpt: ну в этом и вопрос, да
[19:51:18] <Kakadu> bobry: видимо я слишком тонок. Я трансформеры называю коммутаторами
[19:51:20] <ADEpt> bobry: так если непонятно, как выглядит сигнатура monad transformer-а, чего жалеть, что неясно, как его реализовывать? :)
[19:51:29] <ADEpt> нет человека, нет и проблемы :)
[19:51:44] <f[x]> functor(ContainerType)(ElementType) ?
[19:51:52] <f[x]> а внутри неонка
[19:52:24] <bobry> Kakadu: да, слишком — теперь понятно :)
[19:52:37] Kakadu вышел(а) из комнаты
[19:52:54] <bobry> ADEpt: так я и не жалею, просто за год мозг перестроился на х-ль, сейчас пытаюсь опять нащупать камло, а оно совсем не такое
[19:53:03] <bobry> в общем-то по началу от х-ля были аналогичные ощущения
[19:54:45] Kakadu вышел(а) из комнаты
[19:59:16] ftrvxmtrx вышел(а) из комнаты
[19:59:55] tilarids вошёл(а) в комнату
[20:01:00] <ADEpt> bobry: по беглому прочтению, вот это выглядит релевантным: http://lambda.jimpryor.net/monad_transformers/
[20:03:55] <bobry> мерси, почитаю
[20:07:16] Andrey Popp вышел(а) из комнаты
[20:08:46] <gds> bobry: тебе нужен функтор.
[20:09:15] <gds> ADEpt: не понял, в чём проблемы написать монадный трансформер на модулях-функторах.
[20:10:28] <ADEpt> gds: я не говорю, что есть проблемы написать (какие-то глобальные). Я говорил, что прежде чем задаваться вопросом "как написать трансформер, если все типы kind-а *?" надо задать себе другой вопрос: "а что же такое будет трансформер?". И тогда ответ получится почти автоматически
[20:10:53] <gds> ADEpt: Ваистену Так, Ибо.
[20:12:23] Typhon вышел(а) из комнаты
[20:13:39] <gds> bobry: а вообще, чтобы было интереснее, приведи ещё один конструктор твоего типа pipe, мне стало кое-что интересно поглядеть.
[20:14:02] <bobry> да у меня пока нет типа pipe, я думал полчится ли кондуиты сформулировать в терминах камло
[20:14:07] <bobry> очень уж они мне понравились на х-ле
[20:15:34] <gds> так какие ещё там конструкторы, у тебя наверное открыт исходник/папира?
[20:15:42] <f[x]> забаньте меня кто-нибудь здесь
[20:15:52] <f[x]> не могу больше на это смотреть
[20:16:12] <Zbroyar> bobry: не показывай gds'у ничего, а то уйдеш отсюда любителем coq'а
[20:16:28] <gds> хитрый план раскрыт :[
[20:17:13] <Zbroyar> Канал OCaml: интриги, скандалы, расследования
[20:18:00] <gds> именно.
не, ну тут тип экстрактится просто:
type 'm pipe =
  'm
  (* singleton inductive, whose constructor was Done *)
[20:18:08] <gds> неинтересно.
[20:19:02] <gds> а вот сделать в coq штуку, в которой описать это дело, и просто использовать её из окамла -- вполне прилично было бы.  Конечно, там было бы много Obj, но он как бы надёжный.
[20:22:15] <bobry> gds: https://github.com/snoyberg/conduit/blob/master/conduit/Data/Conduit/Internal.hs#L89
[20:22:27] <bobry> я ничего не имею против кока, с удовольствием бы ему поучился :)
[20:22:40] <bobry> а чо, в коке такое можно?
[20:22:54] <gds> Inductive pipe (m : Type -> Type) :=
| Done : m unit -> pipe m
.
[20:24:14] <bobry> нечестно :(
[20:24:24] <bobry> хочу в камле kind'ы для type variables
[20:25:44] 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 уже таки да, см. kamlo_wiki/OCamlChanges | F#, Coq - де-факто онтопик
[20:26:04] <gds> f[x]: а де-юрэ?
[20:26:20] <bobry> а чо нет ссылки на ocaml.org?
[20:26:23] <bobry> он же так хорош
[20:26:45] <f[x]> де-юрэ статус неопределён - можно злоупотреблять
[20:27:06] <gds> bobry: не, сходу не выйдет,
Error: Non strictly positive occurrence of "Pipe" in "m (Pipe l i o u m r) -> Pipe l i o u m r".
может и можно поизвращаться, подобно тому, как в phoas делают, но мне лень.
[20:27:39] f[x] установил(а) тему: OCaml / ОКэмл / Камль -- http://ocaml.org/ | Камло - http://camlunity.ru/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire | Мойте руки перед чатом | 4.00 уже таки да, см. kamlo_wiki/OCamlChanges | F#, Coq - де-факто онтопик
[20:27:40] <gds> суть: для завершимости не все определения типов годны, и можно легко получить незавершимые, но корректные термы, если такие типы будут существовать.
[20:30:08] strobegen вышел(а) из комнаты
[20:40:40] evilbloodydemon вышел(а) из комнаты: поздняк метаться - ракеты в воздухе
[20:50:48] Zbroyar вышел(а) из комнаты
[20:54:57] Zbroyar вошёл(а) в комнату
[20:55:42] bobry вышел(а) из комнаты
[21:00:02] Zbroyar вышел(а) из комнаты: Replaced by new connection
[21:00:02] Zbroyar вошёл(а) в комнату
[21:15:47] komar вошёл(а) в комнату
[21:16:16] Zbroyar вышел(а) из комнаты
[21:24:13] Sun][ вошёл(а) в комнату
[21:27:45] ftrvxmtrx вошёл(а) в комнату
[21:40:27] Andrey Popp вошёл(а) в комнату
[21:40:45] ADEpt вышел(а) из комнаты
[21:41:04] ADEpt вошёл(а) в комнату
[21:43:55] bobry вошёл(а) в комнату
[21:44:30] <bobry> господа, а что тут не так?
[21:44:32] <bobry> is_valid (module ReaderM(struct type t = unit end));;
[21:44:37] <bobry> Exception: Invalid_argument "equal: functional value".
[21:53:07] <bobry> ах чорт, это в is_valid беда, прощу прощения
[21:55:20] ADEpt вышел(а) из комнаты
[21:56:48] ADEpt вошёл(а) в комнату
[22:13:38] Andrey Popp вышел(а) из комнаты
[22:18:42] bobry вышел(а) из комнаты
[22:29:05] Sun][ вышел(а) из комнаты
[22:37:34] bobry вошёл(а) в комнату
[22:38:41] <bobry> gds: вопрос тебе, как любителю манаток, Reader / Writer / State вообще имеют смысл для кода на камло?
[22:41:11] Sun][ вошёл(а) в комнату
[22:45:28] Zbroyar вошёл(а) в комнату
[22:46:52] Zbroyar вышел(а) из комнаты
[22:51:33] bobry вышел(а) из комнаты
[22:54:35] bobry вошёл(а) в комнату
[22:58:41] Sun][ вышел(а) из комнаты
[23:20:50] bobry вышел(а) из комнаты
[23:33:24] ermine вышел(а) из комнаты
[23:35:14] bobry вошёл(а) в комнату
[23:35:14] <gds> bobry: во-первых, я не большой любитель манаток.  Они, конечно, имеют своё применение, но так, что бы именно любить -- ненене.
Отвечая на вопрос: имеют смысл, но мало.  Обычно проще руками проследить, да модулями/типами ограничить всякое непотребство.  Но если в коде уже есть манатки и надо как-то работать с ними совместно -- в первую же очередь лепи монадные трансформеры (обычно это функторы, если брать окамл и его значение слова "функторы"), и их мучай.  Сами манатки лепить при этом не обязательно, кроме Identity.  Ну ты же обмазывался, понимаешь, наверное.
[23:44:18] <bobry> про функторы я сообразил ага, меня скорее интересует пользует ли это кто-то в реальном коде
[23:44:29] <bobry> просто вроде бы в камло можно тот же reader-writer поиметь через ref
[23:53:54] tilarids вышел(а) из комнаты: Machine going to sleep
[23:57:04] Sun][ вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!