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

GMT+3
[00:02:46] Typhon вошёл(а) в комнату
[00:03:23] Typhon вышел(а) из комнаты
[00:11:27] Kakadu вышел(а) из комнаты
[01:00:23] ermine вышел(а) из комнаты
[01:34:34] Typhon вошёл(а) в комнату
[01:36:40] Typhon вышел(а) из комнаты
[01:43:55] Typhon вошёл(а) в комнату
[02:15:54] Typhon вышел(а) из комнаты
[04:51:39] daapp вошёл(а) в комнату
[07:13:02] iNode вышел(а) из комнаты
[07:28:26] ermine вошёл(а) в комнату
[07:51:04] f[x] вошёл(а) в комнату
[08:03:46] <f[x]> zert: http://stackoverflow.com/questions/1933101/ocamlyacc-parse-error-what-token/1939002#1939002
[08:14:17] Typhon вошёл(а) в комнату
[08:25:47] geovit вошёл(а) в комнату
[08:49:32] f[x] вышел(а) из комнаты
[08:49:42] f[x] вошёл(а) в комнату
[08:57:46] gds вошёл(а) в комнату
[09:48:18] <f[x]> http://modeemi.fi/~tuomov/b/2007/theses_on_free_software/
[10:42:38] Typhon вышел(а) из комнаты
[11:49:42] f[x] вышел(а) из комнаты: Logged out
[11:49:48] f[x] вошёл(а) в комнату
[12:03:35] iakovz вошёл(а) в комнату
[12:03:38] <iakovz> hey
[12:25:30] Sergey Plaksin вошёл(а) в комнату
[12:32:40] geovit вышел(а) из комнаты
[13:05:20] iNode вошёл(а) в комнату
[14:08:17] daapp вышел(а) из комнаты
[14:17:22] Typhon вошёл(а) в комнату
[14:20:34] sceptic вышел(а) из комнаты
[14:37:54] iakovz вышел(а) из комнаты
[15:43:06] sceptic вошёл(а) в комнату
[17:30:24] gds вышел(а) из комнаты
[17:37:52] <Typhon> let ( <? ) f x = fun y -> f y x  --- очевидно, что это типа "каррирование справа"? :) если кто подобное делает, каким названием пользуется для этого?
[17:45:25] <f[x]> let flip f x y = f y x
[17:51:52] <Typhon> точно ж, спасибо :)
[17:59:21] <Typhon> http://dumpz.org/16740/ несколько людей ругнулись, что ни черта непонятно. что скажете? :)
[18:01:12] <f[x]> нет close_in - утечка fd
[18:02:32] <Typhon> да, проглядел :(
[18:03:03] <f[x]> что делает check_config по коду непонятно, я бы разэтаэкспандил :)
[18:03:32] <Typhon> да, чек_конфиг получился трэшовый
[18:05:38] gds вошёл(а) в комнату
[18:05:41] <Typhon> надо все переписать по-нормальному :) без типа-"пойнтфри" всяких  :)
[18:06:36] <f[x]> имхо в меру надо использовать
[18:06:57] <Typhon> check_config явно не в меру :)
[18:15:51] <gds> кстати да, я бы тоже ругнулся, что непонятно.  Конечно, оно понятно, но за большее время.  я бы так не писал.
про поинтфри -- верно.
кстати заметил, что код "x >> f >> g" мне более понятен, чем "g $ f .. x", но, наверное, это индивидуально.  Заметил так: читаю я слева направо и мыслю императивно, поэтому мне проще читать "взять x, пропустить его через f, пропустить результат через g", чем "выражение -- результат применения g к результату применения f к аргументу x" (а в худших случаях и без указания этого самого аргумента).  но тут -- сколько людей, столько мнений.
насчёт close_in -- о да.  Лично я редко когда использую чистые файловые дескрипторы, чаще пользую with-идиому.  Тут подобное тоже можно было бы, думаю, но на любителя.
[18:20:05] <Typhon> я ща переделал с $ на |>. канонично?
[18:20:54] <Typhon> а с with в окамле что-то у меня только с обработкой исключений ассоциируется, я пропустил что-то важное про context manager'ы типа?
[18:21:09] <Typhon> в маны ткните )
[18:23:39] <olegfink> gds, у меня тоже не сложилось какого-то универсального мнения, но, например, так как пишем мы тоже слева направо, то при постфиксной записи проще "дописывать" выражение
[18:24:33] <Typhon> а канонично, я имею ввиду, у меня let (|>) f g x = g ( f x). знатоки, ни с чем это не пересекается сильно?
[18:24:38] <gds> насчёт $ -- тут вообще канонов не знаю.  вон хитри чел вообще % использует как $.
|> -- на любителя.  кто его использует, кто >>.
with -- да, и обработку исключений там тоже делать надо.
[18:25:21] <gds> вообще, кто-то делал свежий модуль для использования ресурсов типа файлов, недавно упоминали тут или в рассылке; могу попозже поискать.
[18:25:34] <gds> olegfink: про дописывание можно пример?  туплю.
[18:27:24] <olegfink> есть у меня "g $ f $ x" (и соответственно "x >> f >> g"), и вдруг осеняет меня, что на самом деле мне нужен не сам результат g, а h от него (скажем, среднее арифметическое)
[18:27:34] <Typhon> gds: было б здорово, я наивным поиском не нашел ща
[18:28:02] <olegfink> в первом случае мне надо идти к началу строки и дописывать "h $" в начало, причем в редакторе все выражение будет скакать влево
[18:28:13] <olegfink> во втором просто дописываю ">> h" в конце
[18:28:23] <olegfink> мне, во всяком случае, много раз приходилось подобное делать
[18:29:42] <olegfink> вообще, я до сих пор так и не осознал фундаментальных причин того, что математики любят ($), а, скажем, программисты на форте и ооп-щики -- (>>)
[18:29:55] <olegfink> s/что/почему/
[18:52:48] <Typhon> "with file expr" или нечто подобное на окамле изобразить можно ли и как?
[18:56:45] <Typhon> let with_file filename f =
    let ch = open_in filename in
    let res = f ch
    in close_in ch; res
пока такое наивное решение придумал, хочу лучше :)
[18:57:55] <Typhon> ну try-with еще добавить, но все равно не очень нравится
[18:59:49] <olegfink> try-with добавить как к open_in, так и собственно к f, чтобы при удачном open_in гарантированно выполнялось close_in
[19:17:04] <gds> Typhon: http://www.pps.jussieu.fr/~li/software/ (искать pa_use).  А так -- мысль правильная, только try-with.
[19:19:50] <gds> olegfink: ага, знакомое дело, логично.  оопшники любят понятно почему -- methods chaining или как там.  математики -- за f(g(h(x))).
кстати, в теории категорий раньше активно пользовали оператор "кружочек" для композиции -- f o g = f(g(x)), теперь модно ";" -- f;g = g(f(x)), и эта мода мне по нраву.
[19:22:00] <olegfink> нет, про chaining и f(g(x)) понятно, непонятно, почему оно именно так у тех и у других
[19:24:24] <olegfink> то есть почему префиксная нотация была выбрана изначально
[19:24:54] <gds> chaining пошёл из-за того, что синтаксис вызова метода обычно таков: "объект <загогулина> название-метода".
видимо потому что казалась удобной, типа "вот объект, а мы с ним что-то сделаем".
[19:26:06] <olegfink> а про f(x) -- типа, что функция важнее в рассуждении, чем переменная?
[19:29:44] <Typhon> gds: ";" как-то дико, мне кажется. лучше сиську (.)
[19:30:48] <olegfink> почему ';' плохо? f;g -- "сначала посчитай f; затем посчитай g"
[19:35:45] <gds> f(x) -- видимо да, т.к. переменная чисто условна, и в выражениях вида df/dx её опускают.
";" на бумаге / в формулах вполне нормально смотрится, а в языке программирования -- надо думать.  тоже кажется, диковато.
[19:41:29] <olegfink> я попробовал в голове "развернуть" апл-подобный синтаксис (он обычно вычисляется справа налево), получился какой-то страх. просто привычка?
[19:42:31] <olegfink> например, -5 получается унарной функцией, а вот отрицательная пятерка -- это 5-
[19:46:40] Sergey Plaksin вышел(а) из комнаты
[19:51:32] gds вышел(а) из комнаты: Replaced by new connection
[19:51:33] gds вошёл(а) в комнату
[20:23:42] olegfink вышел(а) из комнаты
[20:23:42] olegfink вошёл(а) в комнату
[21:02:02] ygrek вошёл(а) в комнату
[21:09:59] sceptic вышел(а) из комнаты
[21:14:07] sceptic вошёл(а) в комнату
[21:14:37] gds вышел(а) из комнаты: Replaced by new connection
[21:14:40] gds вошёл(а) в комнату
[21:15:02] sceptic вышел(а) из комнаты
[21:15:06] sceptic вошёл(а) в комнату
[21:18:23] gds вышел(а) из комнаты: Replaced by new connection
[21:18:24] gds вошёл(а) в комнату
[21:25:03] gds вышел(а) из комнаты: Replaced by new connection
[21:25:04] gds вошёл(а) в комнату
[21:32:02] <ygrek> ололо, прислали вакансию в EPAM (крупная аутсорсная контора в Киеве) на ocaml/f#/haskell. Куда катится этот мир?
[21:35:31] gds вышел(а) из комнаты: Replaced by new connection
[21:35:33] gds вошёл(а) в комнату
[22:01:55] Kakadu вошёл(а) в комнату
[22:24:55] Typhon_ вошёл(а) в комнату
[22:25:44] <Typhon_> ygrek, на какой проект не сказали?
[22:34:10] <ygrek> > biggest world investment bank
[22:43:33] <ygrek> Кстати кто там плакался что нельзя использовать << с camlp4?
[22:44:29] <Typhon_> я )
[22:44:33] <ygrek> Можно отключить (узнал от Romain Slootmaekers) :
camlp4o -no_quot -str 'let (<<) a b = a ^ b'
[22:44:53] <Typhon_> круто, спасибо :)
[22:45:34] <ygrek> ага, надо в вики записать
[23:39:54] <ermine> здесь никто redmine не борол?
[23:40:07] <ermine> даже если он не на камле, а на раби
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!