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

GMT+4
[01:02:22] tilarids вышел(а) из комнаты: Computer went to sleep
[01:02:53] tilarids вошёл(а) в комнату
[01:04:22] tilarids вышел(а) из комнаты: Computer went to sleep
[01:10:41] <bobry> чота я вообще не понимаю как это работает, может кто объяснить? https://github.com/jrudolph/json-lenses/
[01:10:52] <bobry> (что такое lenses в курсе)
[01:13:08] f[x] вышел(а) из комнаты
[01:14:17] ermine вошёл(а) в комнату
[01:21:18] <gds> на скалу не лезу.
[01:21:56] <bobry> я вот тоже не лезу, но сама идея использовать линзы для работы с вложенным jsonом звучит довольно вкусно
[01:22:01] <bobry> разобраться бы еще что к чему
[01:28:04] Kakadu вышел(а) из комнаты
[01:31:43] <gds> bobry: принцип (а именно, как применить lenses к json) мне понятен, разве что детали реализации не ясны вообще никак.  Ну да это же твёрдая скала, которой кусок не отгрызть.
А если вообще, в целом, делать нечего, так налепи на coq монадные трансформеры, аналогичные х-евым StateT и ErrorT, и докажи все их законы.  По крайней мере, развлечение гарантировано.  Кроме того, опыт.
[01:32:59] <bobry> увы-увы, делать пока есть что, а линзы и json нужны на работке
[01:33:24] <bobry> детали реализации как раз и интересуют, жаль что скала такая непотребная
[01:35:29] bobry вышел(а) из комнаты
[01:37:45] bobry вошёл(а) в комнату
[01:48:22] ermine вышел(а) из комнаты
[01:49:15] <gds> bobry: если поимеешь желание разобраться в линзах -- хотя бы всратце опиши, если не влом.  Лично мне -- точно интересно.
[01:49:34] bobry вышел(а) из комнаты
[05:36:17] ftrvxmtrx вышел(а) из комнаты
[06:11:03] ftrvxmtrx вошёл(а) в комнату
[08:23:31] letrec вошёл(а) в комнату
[08:23:41] letrec вышел(а) из комнаты
[08:23:57] letrec вошёл(а) в комнату
[08:34:37] tilarids вошёл(а) в комнату
[08:52:22] bobry вошёл(а) в комнату
[09:00:48] <bobry> gds: ок-ок
[09:01:15] Typhon вышел(а) из комнаты
[09:01:31] bobry вышел(а) из комнаты
[09:27:09] tilarids вышел(а) из комнаты: Computer went to sleep
[09:35:13] dzhon вошёл(а) в комнату
[09:46:33] Typhon вошёл(а) в комнату
[09:56:45] Typhon вышел(а) из комнаты
[10:01:02] Sun][ вошёл(а) в комнату
[10:21:50] tilarids вошёл(а) в комнату
[11:25:28] ermine вошёл(а) в комнату
[11:32:40] dzhon вышел(а) из комнаты: Replaced by new connection
[11:32:40] dzhon вошёл(а) в комнату
[11:51:26] bobry вошёл(а) в комнату
[12:35:04] Kakadu вошёл(а) в комнату
[12:57:48] <Kakadu> bobry: Ну и что такое lenses?
[12:58:39] <bobry> Kakadu: composable getters / setters
[13:02:14] <Kakadu> Ну и хер с ними
[13:07:24] <gds> или не с ними, а с теми, кто ими пренебрегает.  с конкретным вариантом я определюсь позднее.
[13:07:51] dzhon вышел(а) из комнаты: Replaced by new connection
[13:07:52] dzhon вошёл(а) в комнату
[13:08:01] <gds> все же помнят старую байку про гротендика?
[13:08:04] <f[x]> с теми кто пренебрегает теми кто не пренебрегает этими самыми
[13:08:10] <bobry> nope
[13:08:15] <Kakadu> я тоже не помню
[13:08:22] Typhon вошёл(а) в комнату
[13:08:33] <Kakadu> я даже не знаю такого слова
[13:12:17] <gds> http://psto.net/ontinn
[13:17:42] <Kakadu> Хоть кто-то байку рассказал. Жалко что она не смешная
[13:21:52] <gds> угу, скорее печальная.
[13:22:35] <gds> но ничего страшного в этом нет.
[13:54:16] <gds> 4.00.0 beta
[13:59:23] <f[x]> все быстренько побежали проверять совместимость
[14:00:19] <gds> ну вот, буду оверблд делать и заодно проверю.  готовые патчики есть, постились.
[14:14:00] akovbovich вошёл(а) в комнату
[14:40:00] tilarids вышел(а) из комнаты: Logged out
[14:42:51] dzhon вышел(а) из комнаты: Replaced by new connection
[14:42:51] dzhon вошёл(а) в комнату
[14:59:54] akovbovich вышел(а) из комнаты
[15:01:51] Vinzent вошёл(а) в комнату
[15:10:43] bobry вышел(а) из комнаты
[15:11:19] bobry вошёл(а) в комнату
[15:30:26] akovbovich вошёл(а) в комнату
[15:56:17] tilarids вошёл(а) в комнату
[16:15:16] tilarids вышел(а) из комнаты: Computer went to sleep
[16:36:00] dzhon вышел(а) из комнаты
[16:41:22] dzhon вошёл(а) в комнату
[17:12:32] tilarids вошёл(а) в комнату
[17:18:02] dzhon вышел(а) из комнаты
[18:17:18] <Kakadu> говорят что айпадная НаноФерма --- камлёвая
[18:34:09] akovbovich вышел(а) из комнаты
[18:39:28] bobry вышел(а) из комнаты
[18:44:33] akovbovich вошёл(а) в комнату
[18:44:51] Sun][ вышел(а) из комнаты
[19:04:13] Kakadu вышел(а) из комнаты
[19:08:58] Typhon вышел(а) из комнаты
[19:45:42] Kakadu вошёл(а) в комнату
[19:55:09] akovbovich вышел(а) из комнаты
[20:11:08] bobry вошёл(а) в комнату
[20:11:57] akovbovich вошёл(а) в комнату
[20:14:45] <gds> update f[x] set kokoko = http://kouzdra.livejournal.com/1130289.html?thread=37445937#t37445937
[20:21:47] <f[x]> ага, там получился достаточно эпичный тред
[20:23:01] <f[x]> кто нибудь юзал flag(tests) из oasis 0.3.0?
[20:23:35] letrec вышел(а) из комнаты
[20:26:28] bobry юзал
[20:26:31] <bobry> дурной он какой то
[20:26:58] <f[x]> пример есть?
[20:27:06] <f[x]> у меня не заводится вообще
[20:27:56] <bobry> чо пишет? https://github.com/superbobry/ocaml-binary/blob/master/_oasis
[20:43:25] <f[x]> аргх
[20:43:28] <f[x]> спасибо
[20:43:34] <f[x]> было Build: flag(tests)
[20:43:38] <f[x]> вместо Build$
[20:43:42] <bobry> ah :)
[20:43:45] <f[x]> хоть бы он строку указывал
[20:43:54] <f[x]> в первой строке было правильно
[20:44:02] <f[x]> а на вторую я не смотрел
[20:45:09] akovbovich вышел(а) из комнаты
[20:51:26] bobry вышел(а) из комнаты
[20:51:32] bobry вошёл(а) в комнату
[21:12:35] tilarids вышел(а) из комнаты: Computer went to sleep
[21:24:48] <gds> а чо за Build$ ваще?
[21:35:17] f[x] вошёл(а) в комнату
[21:42:48] akovbovich вошёл(а) в комнату
[21:49:26] <f[x]> gds: видимо evaluate'ит аргумент
[21:49:30] <f[x]> не знаю - магическое заклинание
[22:04:44] komar вышел(а) из комнаты
[22:05:19] komar вошёл(а) в комнату
[22:07:21] tilarids вошёл(а) в комнату
[22:08:02] Kakadu вышел(а) из комнаты
[22:13:09] akovbovich вышел(а) из комнаты
[22:59:28] Sun][ вошёл(а) в комнату
[23:11:19] Kakadu вошёл(а) в комнату
[23:16:14] <Kakadu> Значит так, имется теоритически много субъектов, сортов  этих субъектов тоже наберется с десяток. Субъекты имееют свой характер и действуют по-своему в зависимости от сорта и окружения. Хочется пошагово заставлять всех субъектов что-то делать. Сорта субъектов представил в виде структур. Сами структуры с внутренним состоянием. Запнулся как прикрутить поведение: либо писать функции вокруг структур, или сразу какие-нибудь классы-объекты?
[23:16:52] Kakadu подороге захотелось сходить в coq и поиметь тип 0<=float<1
[23:18:38] <gds> вопрос на засыпку: как собираешься хранить эти структуры?
[23:18:56] <Kakadu> иерархически
[23:19:02] <gds> как именно?
[23:19:20] <Kakadu> списками пока написал
[23:19:44] <gds> списки -- т.е. структуры имеют одинаковый тип?
[23:21:34] <Kakadu> gds: http://paste.in.ua/4331/
[23:22:07] <gds> то есть, под каждую структуру свой список?
[23:22:29] <Kakadu> а, ну в этом смысле да
[23:22:58] <gds> если уже развёл их по разным спискам, несложно сделать функцию step_ship, step_planet, ...
[23:23:48] <gds> да и типы реально разные.  Навряд ли стоит их пихать во что-то, даже если оно даст функцию "шагнуть".
[23:24:37] <Vinzent> Забавно.
[23:24:40] <Kakadu> ещё есть тонкость, что при вычислении step_ship надо бдет иметь инфу... наверное можно сказать обовсём
[23:25:53] <Vinzent> Такая элементарная операция, а возникают какие-то вопросы :) Не это ли называют недостатком гибкости?
[23:26:53] <Kakadu> это называют либо отсутствием мозгов у программиста, либо попыткой не построить себе грабли (при условии ТЗ железно не поменяется)
[23:26:56] <gds> Kakadu: имей мутабельные структуры данных "обо всём", смотри всё, создавай новые структуры/апдейты, пихай их после расчёта.
[23:27:09] <gds> Vinzent: ты ниасилил, видимо.
[23:27:35] <Vinzent> Kakadu: ТЗ? Железно? Ну ок, ок :)
[23:27:48] <Vinzent> gds: не я же вопрос задаю.
[23:28:12] <gds> > Vinzent: Такая элементарная операция, а возникают какие-то вопросы :) Не это ли называют недостатком гибкости?
а это што
[23:28:32] <Vinzent> Что "это"?
[23:28:56] <gds> вот это:
> Vinzent: Такая элементарная операция, а возникают какие-то вопросы :) Не это ли называют недостатком гибкости?
[23:29:38] <Vinzent> Это, видимо, мое сообщение.
[23:29:57] <gds> это вопрос.  "не я же вопрос задаю" -- это ложь.
[23:30:35] <Vinzent> Очевидно, что речь шла про другой вопрос.
[23:30:42] <gds> задаёшь вопрос, потому что ниасилил вопрос птички нашей.
[23:31:36] <Vinzent> С чего ты это взял?
[23:32:01] <gds> с "элементарной операции" и с "недостатка гибкости".
[23:32:32] <Vinzent> А разве это не элементарная операция?
[23:33:03] <gds> нет.
[23:33:50] <Vinzent> Что и требовалось доказать: у нас - элементарная, у вас - нет. А все из-за недостатка гибкости и выразительной мощи! :)
[23:34:16] <gds> КОКОКОКОКО
[23:39:21] Sun][ вышел(а) из комнаты
[23:39:37] Sun][ вошёл(а) в комнату
[23:42:29] <gds> Kakadu: насчёт 0 <= float < 1 -- смотри, какие именно гарантии нужны.  Если "на вход" -- делай
module Float01 : sig type t = private float; value inj : float -> float; ...
и чтобы inj бросало исключение.
Если гарантии "на операцию" -- определись с тем, что должно быть при переполнении.  Если обрезание -- обрезай в том же модуле, если ошибка -- тоже исключение.
Если гарантии "на выход" -- делай не t = private float, а абстрактный тип, и
value proj : t -> float
с выбросом исключения.  Но "на выход" -- поздняя диагностика ошибок.  Лучше подумай, что именно нужно от этого float.
Кроме того, в симуляциях я часто использовал не float, про который нужно знать кое-что, что тебе знать не хочется, а целые числа.  Например, целое от 0 до 2³¹-1, которое отображалось на как бы float в [0; 1) делением на 2³¹.
[23:45:06] <Kakadu> gds: спасибо, особенно понравился последний вариант
[23:46:44] <gds> но это будет "нативно" работать только в 32битном окамле.  Учитывай, что инт -- он разный.
[23:51:19] Sun][ вышел(а) из комнаты
[23:57:23] <Kakadu> блин, глаза разбегаются. Можно в иерархии объекты прямиком хранить в списках. А можно завести хэштаблицу и хранить idшники.  Надо поудмать что лучше
[23:58:12] Kakadu реально чувствует себя студентом первого курса. Вот тебе и защитил диплом
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!