Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 23 января 2013< ^ >
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 - де-факто онтопик
Конфигурация комнаты
Участники комнаты

GMT+4
[00:06:22] Typhon вошёл(а) в комнату
[00:12:36] Typhon вышел(а) из комнаты
[00:27:05] Andrey Popp вышел(а) из комнаты
[00:48:16] tilarids вышел(а) из комнаты: Computer went to sleep
[00:49:24] bobry вошёл(а) в комнату
[00:51:26] tilarids вошёл(а) в комнату
[00:59:01] tilarids вышел(а) из комнаты: Logged out
[01:03:55] Kakadu вышел(а) из комнаты
[01:20:20] bobry вышел(а) из комнаты
[07:41:25] ermine вошёл(а) в комнату
[08:42:29] tilarids вошёл(а) в комнату
[09:30:38] komar вышел(а) из комнаты: Logged out
[09:43:18] Sun][ вошёл(а) в комнату
[10:03:03] dzhon вошёл(а) в комнату
[10:14:30] tilarids вышел(а) из комнаты: Computer went to sleep
[10:27:52] tilarids вошёл(а) в комнату
[11:06:36] komar вошёл(а) в комнату
[11:09:16] dzhon вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[11:09:23] dzhon вошёл(а) в комнату
[11:15:27] Vinzent вошёл(а) в комнату
[11:30:50] tilarids вышел(а) из комнаты: Computer went to sleep
[11:37:04] komar вышел(а) из комнаты: Logged out
[11:37:08] komar вошёл(а) в комнату
[11:41:33] ftrvxmtrx вошёл(а) в комнату
[11:52:15] tilarids вошёл(а) в комнату
[11:55:05] f[x] вышел(а) из комнаты
[11:55:22] f[x] вошёл(а) в комнату
[12:05:07] Kakadu вошёл(а) в комнату
[12:16:03] Kakadu вошёл(а) в комнату
[12:51:55] Andrey Popp вошёл(а) в комнату
[12:55:55] tilarids вышел(а) из комнаты
[13:01:06] tilarids вошёл(а) в комнату
[13:21:14] Typhon вошёл(а) в комнату
[13:31:40] Andrey Popp вышел(а) из комнаты
[13:31:54] Vinzent вышел(а) из комнаты
[13:32:52] <f[x]> gds: это же просто более умная логика для вывода типов record'ов
[13:33:04] <f[x]> т.е. во многих случаях не надо будет писать x.Module.foo
[13:33:07] Andrey Popp вошёл(а) в комнату
[13:33:08] <f[x]> а просто x.foo
[13:33:14] <f[x]> что очень круто
[13:33:50] <f[x]> там вроде в результате 100-комментного обсуждения пришли к какому-то вменяемому решению
[14:07:00] Andrey Popp вышел(а) из комнаты
[14:50:16] dzhon вышел(а) из комнаты
[15:18:57] <gds> f[x]: а ты в само решение не вникал?
[15:19:07] Andrey Popp вошёл(а) в комнату
[15:19:19] <gds> мне просто влом читать 100 каментов.
[15:39:05] <f[x]> кратко то что помню, могу ошибаться :
1) рекорды без явно указанного модуля ищутся не только в текущем скоупе
2) рекорды ищутся не только по первому полю, а по совокупности полей (в случае pattern match'а по record'у)
3) если есть несколько подходящих рекордов в одном скоупе - выбирается подходящий по типам полей
4) если модуль указан явно то используется только п.3 для disambguation
[15:41:46] <gds> f[x]: а всякия "let f x y = x.field y" как будут работать?
[15:48:02] <gds> в общем, хитрый план таков: объявляем запись type gen = { to_string : t -> string } в разных модулях типа String, Int, Float, далее лепим gen.to_string 123; gen.to_string "qwe".
[15:51:58] <f[x]> ну оно не 100% - если не сможет  вывести - будет обычный unknown field
[15:55:26] <gds> если так -- будет вполне разумно.
[16:03:27] tilarids вышел(а) из комнаты: Machine going to sleep
[16:12:25] zinid вошёл(а) в комнату
[16:16:18] dzhon вошёл(а) в комнату
[17:04:34] Sun][ вышел(а) из комнаты
[17:14:16] Typhon вышел(а) из комнаты
[17:17:08] Typhon вошёл(а) в комнату
[17:37:22] tilarids вошёл(а) в комнату
[17:44:20] zinid вышел(а) из комнаты
[17:56:38] tilarids вышел(а) из комнаты
[17:57:21] tilarids вошёл(а) в комнату
[18:07:15] bobry вошёл(а) в комнату
[18:07:22] <bobry> товарищи, а кто тут opam пользует?
[18:07:34] <bobry> мне вот интересно, оно умеет файлик с зависимостями проекта?
[18:11:56] <f[x]> ну если проект оформлен как package то why not?
[18:12:25] ermine вышел(а) из комнаты
[18:13:50] <bobry> гм, ну у них воде package отдельно лежать должен
[18:13:51] <bobry> в репке
[18:15:35] Typhon вышел(а) из комнаты
[18:15:47] <f[x]> ну тогда файлик ./deps.sh : opam install dep1 dep2 dep3 :)
[18:15:55] Typhon вошёл(а) в комнату
[18:17:26] <bobry> ну я думал можно просто цивильно декларировать зависимости
[18:17:30] <bobry> как это в cabal сделано
[18:17:40] <bobry> и как это можно было делать в барбре :)
[18:36:27] bobry вышел(а) из комнаты
[18:55:18] Andrey Popp вышел(а) из комнаты
[19:02:04] komar вышел(а) из комнаты: Logged out
[19:06:21] bobry вошёл(а) в комнату
[19:07:30] bobry вышел(а) из комнаты
[19:12:07] Andrey Popp вошёл(а) в комнату
[19:18:38] Andrey Popp вышел(а) из комнаты
[19:21:51] Kakadu вышел(а) из комнаты
[19:27:25] dzhon вышел(а) из комнаты
[19:55:27] ermine вошёл(а) в комнату
[20:11:41] Kakadu вышел(а) из комнаты
[20:27:52] ftrvxmtrx вышел(а) из комнаты
[21:06:54] Kakadu вошёл(а) в комнату
[21:24:55] bobry вошёл(а) в комнату
[21:25:16] <bobry> а есть где-нибудь список встроенных функций типа "%apply%"?
[21:26:48] <bobry> и ещё, эти эротические фантазии кто-нибудь реализовывал? https://github.com/camlunity/kamlo_wiki/blob/master/sqlgg.md
[21:27:47] <gds> bobry: про %apply -- ищи по слову "primitive" в окамловских исходниках.
[21:27:55] <Typhon> в смысле, фантазии? http://ygrek.org.ua/p/sqlgg/ же
[21:29:07] <bobry> ого, а там ссылочки и нет что-то
[21:29:13] <bobry> gds: стало быть доки нема?
[21:29:20] <bobry> я думал оно в камловики есть
[21:29:22] <bobry> но не нашел
[21:29:45] <gds> это внутренняя шняга, оно не документируется, и вообще, "не окамл".  Используют на свой трах и риск.
[21:30:15] <gds> а про реляционки -- я как раз сейчас мучаю их.  Но по-своему, извращённо.  Суть -- иметь гарантии того, что изменение схемы и функций будет работать по итогу.  А изменение схемы -- например, создание таблиц и функций в пустой схеме.
[21:34:11] <bobry> а как отслеживаешь изменения?
[21:36:41] <gds> по проекту, вся схема будет представлять собой значение, записанное с помощью терминов и нотаций (эдакий camlp4 for coq).  Изменения -- это 1. добавить собственно ддл к имеющейся схеме, 2. скомпилировать схему в новое значение.  (тут же можно поддерживать версионность схемы, чтобы обновлять БД на последнюю поддерживаемую программой схему при запуске программы.)
[21:38:14] <bobry> мм.. а что есть скомпилированная схема?
[21:38:21] <bobry> вообще звучит как обычный тул для миграций
[21:41:20] <gds> скомпилированная -- схема, в которой строковые (следовательно, динамически-типизированные) переменные, поля, таблицы и функции наделены типами.  С гарантией того, что не будет непреднамеренных преобразований типов, с гарантиями успешности sql/dml, обращений к переменным, про select .. into strict .. (выбор ровно одной строки, не больше, не меньше) тоже хочу в будущем.
Про "тул для миграций" -- думал, они diff-centric, у меня же всё идёт из пустой схемы и из ддл относительно неё.
[21:42:17] <bobry> я тут писал в универе тупую базу и ооочень впечатлился что разрешает SQL в плане приведения типов
[21:42:30] <bobry> например "foo" + 42 вполне себе well defined
[21:42:48] <bobry> а ты хочешь это дело отдельно либой? я бы почитал
[21:43:05] <gds> не либой, а средой разработки для coqide/proofgeneral.
[21:43:12] <gds> кое-что на тактиках, например.
[21:43:24] <bobry> и ещё не очень понятно про функции, что за функции — CREATE FUNCTION ...?
[21:43:29] <gds> чтобы был виден контекст -- что какой тип имеет и почему не компилируется.
[21:43:47] <gds> create function -- да.  Хранимки.  Обязательная штука для бд.
[21:44:01] <gds> postgresql:
=> select 'foo' + 42;
ERROR:  invalid input syntax for integer: "foo"
LINE 1: select 'foo' + 42;
[21:45:11] <bobry> from?
[21:45:52] <gds> в постгресе не нужен,
=> select 1 + 42;
?column?
----------
       43
(1 row)
[21:46:02] <gds> в оракле -- ну, добавил бы "from dual"/
[21:46:40] <bobry> hrm, а ведь должно оно работать
[21:46:48] <bobry> у меня щас нет psql под рукой, чтобы проверить
[21:47:55] <gds> да и не нужно -- я тебе верю, ибо сам встречался, какие непотребные преобразования типов разрешает sql.  Ад и израиль.
[21:48:24] <bobry> кстати, оффтопик, на SML вообще кто-то что-нибудь полезное пишет?
[21:48:36] <gds> он вроде здох.
[21:48:40] <bobry> я щас на него смотрю через proglang на корсере, и некоторые мелочи довольно милые
[21:49:04] <bobry> ну последний релиз год назад
[21:49:24] <bobry> Stable release 110.75 (October 1, 2012; 2 months ago)
[21:49:29] <bobry> не, вообще недавно
[21:50:01] <gds> значит я не про то помню.
[22:00:38] komar вошёл(а) в комнату
[22:10:48] komar вышел(а) из комнаты: Logged out
[22:10:52] <bobry> господи какие костыли в SML, 'a в сигнатуре значит любой тип, а ''a — тип который умеет проверять значения на равенство
[22:12:48] Typhon вышел(а) из комнаты
[22:14:44] Typhon вошёл(а) в комнату
[22:15:44] Typhon вышел(а) из комнаты
[23:13:02] Sun][ вошёл(а) в комнату
[23:18:09] <gds> ужоснах.  А сравнение, хеширование и прочее они не смогли закодировать в какое-нибудь '`!@#a?
[23:20:16] <bobry> :)
[23:30:43] bobry вышел(а) из комнаты
[23:31:01] komar вошёл(а) в комнату
[23:52:06] komar вышел(а) из комнаты: Logged out
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!