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

GMT+4
[00:08:10] Kakadu вошёл(а) в комнату
[00:27:46] digital_curse вышел(а) из комнаты
[01:59:48] Kakadu вышел(а) из комнаты
[02:49:33] Typhon вышел(а) из комнаты
[03:55:22] komar вышел(а) из комнаты
[07:34:34] iNode вошёл(а) в комнату
[07:54:56] iNode вышел(а) из комнаты
[08:22:50] gds вышел(а) из комнаты
[08:33:46] iNode вошёл(а) в комнату
[08:59:57] gds вошёл(а) в комнату
[09:59:42] serp256 вошёл(а) в комнату
[10:06:14] ʇsʎɯ вошёл(а) в комнату
[10:44:13] Typhon вошёл(а) в комнату
[11:10:33] vshender вошёл(а) в комнату
[11:19:20] ermine вошёл(а) в комнату
[11:54:03] Kakadu вошёл(а) в комнату
[12:15:33] serp256 вышел(а) из комнаты
[12:25:04] gds вышел(а) из комнаты
[12:29:24] serp256 вошёл(а) в комнату
[12:37:56] vshender вышел(а) из комнаты
[12:51:52] serp256 вышел(а) из комнаты
[12:52:16] serp256 вошёл(а) в комнату
[12:53:29] <f[x]> есть ли какая-нибудь принципиальная причина почему ocamlbuild не мог бы автоматически пробрасывать нужные тэги с .ml на .byte .native цели?
[12:53:30] gds вошёл(а) в комнату
[12:53:32] <f[x]> например use-
[12:53:34] <f[x]> * use_
[12:54:55] <gds> может, предполагают, что не все тэги нормально пробрасываются?  хотя всякие use_ -- однозначно полезно было бы.
[12:56:26] <f[x]> да, не все
[12:57:19] <f[x]> но это решается правильной расстановкой flag'ов
[12:58:30] <f[x]> т.е. например
flag ["ocaml";"link";"use_xxx"]
flag ["ocaml";"compile";"use_xxx"]
flag ["ocaml";"pp";"use_xxx"]
[13:00:01] <f[x]> т.е. в финальном линке будет много тэгов притянутых, но они не сработают просто
[13:00:38] <f[x]> конечно можно просто захардкодить или добавить опцию какие тэги пробрасывать (мне всегда нужен только use_)
[13:04:27] gds вышел(а) из комнаты
[13:22:34] serp256 вышел(а) из комнаты
[14:17:27] gds вошёл(а) в комнату
[14:33:34] komar вошёл(а) в комнату
[15:06:21] serp256 вошёл(а) в комнату
[16:36:48] yakov вошёл(а) в комнату
[16:43:06] gds вышел(а) из комнаты
[16:43:47] gds вошёл(а) в комнату
[16:43:47] Kakadu вышел(а) из комнаты
[17:17:39] fly-fire-fox вошёл(а) в комнату
[17:18:00] <fly-fire-fox> Привет всем
[17:21:38] iNode вышел(а) из комнаты
[17:22:34] <f[x]> komar: let teh_end = Stream.empty ?
[17:23:10] <fly-fire-fox> По F# вопросы можно?
[17:26:11] <f[x]> рискни
[17:29:52] <fly-fire-fox> Как выполнить просто функцию? Чтобы не писать  
let p1 = sqlCmd.Parameters.AddWithValue("EmployeeID", eId)
А просто sqlCmd.Parameters.AddWithValue("EmployeeID", eId)
[17:30:27] <fly-fire-fox> Только через do ignore(sqlCmd.Parameters.AddWithValue("EmployeeID", eId)) ?
[17:32:13] <f[x]> в топлевеле?
[17:32:54] <fly-fire-fox> Нет
[17:33:24] <fly-fire-fox> Там такой код:
                if eId = null then System.Console.WriteLine("Неправильно задано ФИО сотрудника или подразделение! Не найден сотрудник для увольнения")
                else
                    let p1 = sqlCmd.Parameters.AddWithValue("EmployeeID", eId)
                    let p2 = sqlCmd.Parameters.AddWithValue("DepartmentID", dIdi)
[17:34:46] <fly-fire-fox> Мне кажется как то не оч правильно создавать кучу идентификаторов под каждый параметр
[17:34:52] <f[x]> ["EmployeeID",eId;"DepartmentID",dIdi] >> Seq.iter (ignore << sqlCmd.Parameters.AddWithValue)
[17:34:58] <f[x]> можно let _ =
[17:35:26] f[x] frowns: кто ж в 21-веке вручную параметры в команду подставляет, ужас-ужас
[17:36:33] <fly-fire-fox> Ну я в ООП привык на C# писать)) А тут как то все по другому)
[17:39:08] <fly-fire-fox> А вот такой инструкцию ["EmployeeID",eId;"DepartmentID",dIdi] >> Seq.iter (ignore << sqlCmd.Parameters.AddWithValue) - её куда нипасть?
                if eId = null then System.Console.WriteLine("Неправильно задано ФИО сотрудника или подразделение! Не найден сотрудник для увольнения")
                else
                     ["EmployeeID",eId;"DepartmentID",dIdi] >> Seq.iter (ignore << sqlCmd.Parameters.AddWithValue)
так не работет..
[17:42:18] <f[x]> ну я по памяти писал, посмотри в топлевеле
[17:42:26] <f[x]> чего ему не хватает
[17:43:04] <fly-fire-fox> Пишет -  This expression was expected to have type     'a -> 'b     but here has type     'c list    
[17:46:11] yakov вышел(а) из комнаты
[17:47:32] <f[x]> наверное вместо >> надо |>
[17:48:31] <fly-fire-fox> Во - работает как                    
Seq.iter (ignore << sqlCmd.Parameters.AddWithValue) ["EmployeeID",eId;"DepartmentID",dIdi]
[17:49:34] <fly-fire-fox> Теперь бы ещё понять как оно работает))
[17:52:05] <ʇsʎɯ> хорошо было бы сналача понять, а потом писать
[17:52:17] <fly-fire-fox> А чего делает <<  ?
[17:52:53] <fly-fire-fox> ʇsʎɯ: Оно все в процессе)
[17:53:42] <ʇsʎɯ> fly-fire-fox: фигово тебе
[17:54:19] <ʇsʎɯ> кстати, у микрософта отличная документация...
[17:54:31] <fly-fire-fox> Ага, читал
[17:55:11] <fly-fire-fox> Только ФЯ это какой то иной способ мышления всетаки)
[17:55:24] ʇsʎɯ сейчас находится в состоянии ступора. Коллеги искренне считают, что TSP можно точно решить за быстрое время. "Главное придумать, как это сделать. Погодь-погодь..."
[17:56:28] <ʇsʎɯ> пока они рожают хитрослепленные комбинации деревьев и прочего ужаса, я читаю Lin-Kernighan, что не облегчает какбе
[17:57:48] <fly-fire-fox> Ещё вопрос - как то можно перегружать функции в F#?
[17:59:06] <ʇsʎɯ> нет
[17:59:12] <ʇsʎɯ> зачем это?
[17:59:37] <f[x]> что значит нет? что значит перегружать?
[17:59:49] <fly-fire-fox> Эм
[18:00:09] <ʇsʎɯ> скорее всего он имеет ввиду одно имя для разных наборов параметров (разного типа)
[18:00:27] <fly-fire-fox> Чтобы допустим функция F могла принимать 2 значения и выполнять одни или 3 значения ивыполнять совсем другое
[18:00:52] <fly-fire-fox> ʇsʎɯ:  Ну да
[18:00:54] <ʇsʎɯ> я бы сделал 2 функции
[18:01:07] <fly-fire-fox> А если нужно чтобы они были с одним именем?
[18:01:11] <f[x]> можно, это называется ad-hoc полиморфизм
[18:01:12] <ʇsʎɯ> не нужно
[18:01:52] <fly-fire-fox> f[x]:  Как?
[18:03:45] <f[x]> 1) попробуй объявить такие функции и посмотри
2) почитай документацию на f#
3) посомтри википедию про полиморфизм
[18:04:05] <fly-fire-fox> Объявить пробовал - ругается
[18:06:49] <f[x]> для методов работает, для обычных функций нет
[18:07:00] <fly-fire-fox> Ну да
[18:07:19] <f[x]> или inline
[18:07:34] <fly-fire-fox> Мм? Смысле?
[18:09:50] <f[x]> http://lmgtfy.com/?q=f%23+overloading
[18:21:17] <fly-fire-fox> Поясните плиз про оператор <<
[18:25:21] <f[x]> композиция функций
[18:25:30] <f[x]> посмотри тип
[18:28:38] <fly-fire-fox> Т.е. как бы в ignore << sqlCmd.Parameters.AddWithValue сначала выполняется  sqlCmd.Parameters.AddWithValue а потом её результат передается ignore ?
[18:30:43] <f[x]> нет в выражении (f << g) ничего не выполняется
[18:30:51] <f[x]> * нет,
[18:30:53] <Typhon> fly-fire-fox: википедия, композиция функций. нет, создается _функция_, которая _применяет к аргументу_ add и передает результат в игноре
[18:31:13] <ʇsʎɯ> так удобно, лекции читают ))
[18:31:34] <gds> мне бы кто про оффтопичные монадные трансформаторы прочитал чего :)
[18:31:42] <gds> ну или как их там.
[18:31:46] <fly-fire-fox> )))
[18:32:09] <f[x]> единственно неудобно иногда влезает ʇsʎɯ и дайт неправильные ответы путая студентов ;)
[18:32:47] <ʇsʎɯ> это может заставить их думать
[18:32:51] <fly-fire-fox> Ну примерно понял)) Спасибо)
[18:33:01] <gds> то да.  Надо его этсамое.  По наглой рыжей морде.  С другой стороны, реаллайф примерно такой и есть.
[18:33:51] <fly-fire-fox> Ага вот так и у нас преподаватель и говорит - ничег оне рассказывая дает задания - типа вы так научиваетесь думать..
[18:34:06] <Typhon> gds: олег один и он где-то то ли в наса, то ли в минобороны, а кроме него никто не знает про это :)
[18:35:00] <ʇsʎɯ> fly-fire-fox: а у меня вообще преподавателя нет, прикинь!
[18:35:52] <gds> fly-fire-fox: не, если не уметь, то _так_ научиться сложно или невозможно вообще.  Надо, чтобы в детстве пробудили интерес.  В 3..5 лет.  Или же подростковые понты, лет в 13..17, чтобы "сделать так, чтобы все аж-аж".  Но у преподов ласки не хватает на всех.
[18:36:12] <f[x]> врёт  ваш преподаватель, думать все равно не научитесь, просто ему будет проще определить тех кто думать никогда не умел :)
[18:37:00] <fly-fire-fox> gds: Ага у меня наверн был 2-й случай))
[18:37:17] <fly-fire-fox> gds: Так и получился из бухгалтера програмист))
[18:37:31] f[x] думает начинать банить за слепые смайлы
[18:38:07] <ʇsʎɯ> а одноглазые можно? .)
[18:38:08] <Typhon> f[x]: лексер ломается?
[18:40:46] <fly-fire-fox> f[x]: Думать на работе лучше научиваешься..Где просто НАДО что то сделать к определенному сроку..
[18:41:28] <ʇsʎɯ> всё проще: кто хочет - думает, кто не хочет - не думает.
[18:44:08] <gds> Typhon: про эти "трансформаторы" знают многие, не только олег, но только знание -- вон, как в случае студента, неудобоваримое.  Варианты: 0. реаллайф+выходные+забить, 1. в случае желания -- пораскинуть моск, взяться проверять "monad transformer laws" руками, чтобы понять, чего этим [..] надо на практике, 2. в todo следующим идёт прохавывание DB-API От Лучших Петонье, ибо надо ocaml dbi 2 лепить, чего тут прохлаждаться. (вот по последнему пункту чятик буду мучить по самое.)
[18:49:59] fly-fire-fox вышел(а) из комнаты: QIP Infium: Спокойное общение
[18:56:29] ʇsʎɯ вышел(а) из комнаты
[19:23:42] Typhon вышел(а) из комнаты
[19:38:05] <ermine> как отсортировать плоский список в многоветвистое дерево иерархии?
[19:42:12] serp256 вышел(а) из комнаты
[19:45:05] Kakadu вошёл(а) в комнату
[19:47:10] Kakadu вышел(а) из комнаты
[20:15:39] f[x] вышел(а) из комнаты
[20:18:39] komar вышел(а) из комнаты
[20:37:46] Typhon вошёл(а) в комнату
[20:50:23] abiogenesis вошёл(а) в комнату
[20:50:29] <gds> ermine: 1. сортировка = переупорядочивание, а не изменение структуры (на дерево).  2. каким образом отсортировать?
впрочем, я уже не актуален, судя по времени.
да и сейчас иду в реаллайф.  сетку на окнах для кошек вешать, и всё таое.
[20:52:12] abiogenesis вышел(а) из комнаты
[20:53:10] <ermine> gds: я еще не решила, как страдать
[20:54:36] Kakadu вошёл(а) в комнату
[21:30:07] Kakadu вышел(а) из комнаты
[21:44:22] digital_curse вошёл(а) в комнату
[22:01:46] Kakadu вошёл(а) в комнату
[22:23:57] Kakadu вышел(а) из комнаты
[22:29:08] <gds> ermine: адепты ленивого исчисления откладывают страдания на потом, но в двойном размере.  Будешь кредит, ням-ням?
[23:07:59] lelf вошёл(а) в комнату
[23:08:41] <ermine> gds: ты видел как строится лента комментов на lj?
[23:09:21] <ermine> gds: вот я думаю, как строится такая иерархия без предварительной индексации, позволяющей брать из базы готовую иерархию
[23:10:30] <ermine> но щас я решила поломать структуру своей базы, а там в итоге будет предварительная индексация для дешевой жизни
[23:17:36] lelf вышел(а) из комнаты
[23:26:17] Kakadu вошёл(а) в комнату
[23:27:39] ermine вышел(а) из комнаты
[23:48:27] Kakadu вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!