Home
Russian Haskell Community
haskell@conference.jabber.ru
Пятница, 1 октября 2010< ^ >
ExplicitCall установил(а) тему: Don't fear monads - they will sense it and f#ck you up | клуб любителей (молчать о) Haskell | Чтобы получить "голос" - ответьте на вопрос testbot-а | чтобы ответить на вопрос - читайте tutorial-ы на www.haskell.org | Чтобы читать туториалы - надо знать английский язык | Тут не курсы английского языка | Обсуждение icfpc переехало в icfpc@c.j.r | Обсуждение xmonad переехало в xmonad@c.j.r | Поощряемые темы: код и дизайн программ на haskell, total functional programming, системы типов, type-level programming | Обсуждение остальной тематики участникам этой конференции рекомендуется вести в haskell-talks@c.j.r
Конфигурация комнаты
Участники комнаты

GMT+4
[00:00:15] kpierre вышел(а) из комнаты
[00:02:32] nealar вошёл(а) в комнату
[00:09:48] Йода вышел(а) из комнаты
[00:14:03] lambdabot вышел(а) из комнаты
[00:14:05] testbot вышел(а) из комнаты
[00:15:03] <balodja> инстансы к MonadIO вручную объявлять?
[00:15:58] testbot вошёл(а) в комнату
[00:15:59] lambdabot вошёл(а) в комнату
[00:16:10] <balodja> или для всяких MonadState s IO уже где-нибудь объявлено?
[00:17:48] <balodja> да и фиг с ним, одну однострочную функцию можно и написать
[00:23:22] iserge вышел(а) из комнаты
[00:43:12] bobry вошёл(а) в комнату
[00:52:41] happy_grapefruit вышел(а) из комнаты
[00:54:09] covax вошёл(а) в комнату
[01:19:58] covax вышел(а) из комнаты: Replaced by new connection
[01:19:59] covax вошёл(а) в комнату
[01:43:46] covax вышел(а) из комнаты: Replaced by new connection
[01:43:47] covax вошёл(а) в комнату
[01:46:53] Feuerbach вошёл(а) в комнату
[01:50:02] <Feuerbach> balodja: MonadIO m => MonadIO (StateT s m)
[02:00:17] <balodja> а, класс
[02:00:24] balodja вышел(а) из комнаты
[02:01:03] balodja вошёл(а) в комнату
[02:01:30] <balodja> это я затупил что-то. спасибо
[02:01:45] balodja вышел(а) из комнаты
[02:08:13] sannysanҨff_home вышел(а) из комнаты
[02:32:02] covax вышел(а) из комнаты
[02:36:56] bobry вышел(а) из комнаты
[02:49:47] nealar вышел(а) из комнаты: Replaced by new connection
[02:49:48] nealar вошёл(а) в комнату
[02:56:05] nerr вошёл(а) в комнату
[03:38:09] Feuerbach вышел(а) из комнаты
[04:08:47] nealar вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[04:17:23] rexim вошёл(а) в комнату
[04:22:11] \o->o вошёл(а) в комнату
[04:36:04] daapp вошёл(а) в комнату
[05:14:19] rexim вышел(а) из комнаты
[06:22:03] rkit вышел(а) из комнаты
[06:37:20] Dema вошёл(а) в комнату
[06:51:06] portnov вошёл(а) в комнату
[06:52:20] \o->o вышел(а) из комнаты
[06:52:32] rkit вошёл(а) в комнату
[07:09:17] L29Ah вышел(а) из комнаты
[07:15:29] hobbit вошёл(а) в комнату
[07:30:22] portnov_work вошёл(а) в комнату
[08:11:37] tranquil вышел(а) из комнаты
[08:18:10] iNode вышел(а) из комнаты
[08:47:48] Gebb вышел(а) из комнаты
[08:48:08] Gebb вошёл(а) в комнату
[08:54:38] <portnov_work> ну чо, кто-то уже новое ghc тыкал?
[08:59:38] iNode вошёл(а) в комнату
[09:11:38] L29Ah вошёл(а) в комнату
[09:12:16] const_ptr вошёл(а) в комнату
[09:17:39] balodja вошёл(а) в комнату
[09:19:26] tranquil вошёл(а) в комнату
[09:31:31] nealar вошёл(а) в комнату
[09:41:25] kpierre вошёл(а) в комнату
[09:42:11] kpierre вышел(а) из комнаты
[09:42:25] kpierre вошёл(а) в комнату
[09:58:02] Emperor вошёл(а) в комнату
[09:58:44] Emperor вышел(а) из комнаты: QIP Infium: Спокойное общение
[09:59:40] catap вышел(а) из комнаты
[10:06:21] catap вошёл(а) в комнату
[10:17:17] bobry вошёл(а) в комнату
[10:24:40] <valexey> portnov_work: это который там новый?
[10:24:54] <balodja> 7ой же
[10:24:58] <portnov_work> какой-то из 7.*
[10:25:01] <portnov_work> 7.01 чтоле
[10:25:03] <portnov_work> как-то так
[10:25:15] <balodja> portnov_work: а что в нем принципиально нового?
[10:25:38] <portnov_work> type inferring engine переписали начисто
[10:25:42] <portnov_work> http://hackage.haskell.org/trac/ghc/blog/LetGeneralisationInGhc7
[10:28:24] <tranquil> принципиально новый ghc
[10:30:23] <valexey> гм. а чем был плох старый?
[10:31:32] <balodja> valexey: ghc -- это же "state of art haskell compiler", его переписывали over 9000 раз
[10:31:47] <balodja> tranquil: и где почитать про принципиальную новизну?
[10:33:23] <tranquil> balodja: например, здесь http://johantibell.com/files/hask17ape-sullivan.pdf
[10:37:17] <L29Ah> он уже собирает xmonad?
[10:37:57] <balodja> tranquil: в модели вычислений что-нибудь изменилось?
[10:39:00] <tranquil> balodja: что значит модель вычислений? я особо семеркой не интересуюсь пока, просто вот папир попался на глаза
[10:39:27] const_ptr вышел(а) из комнаты
[10:40:05] <tranquil> и там написано что скоро хаскель будет годная платформа для реализации масштабируемых сетевых приложений
[10:41:01] <balodja> tranquil: более конкретно -- core haskell, виртуальная машина и генератор нативного кода
[10:41:26] <balodja> изменились ли они, и насколько
[10:41:34] <balodja> у меня тупо не получается ничего нагуглить про семерку
[10:41:40] <portnov_work> насколько я понимаю, нет.
[10:43:48] nealar вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[10:46:24] <tranquil> кроме http://hackage.haskell.org/trac/ghc/ не могу подсказать где искать инфу
[11:02:06] <balodja> http://hackage.haskell.org/trac/ghc/wiki/Status/Apr10
[11:02:19] <balodja> тут что-то есть, но устаревшая инфа
[11:02:41] <balodja> An upcoming epic (70-page) JFP paper "Modular type inference with local assumptions" brings together all the key ideas; watch Simon's home page.
[11:02:49] <balodja> о-о-о! это надо почитать-с
[11:07:00] covaxi вошёл(а) в комнату
[11:17:00] Victor вошёл(а) в комнату
[11:22:46] asqz вошёл(а) в комнату
[11:33:21] ǝuıɯɹǝ вошёл(а) в комнату
[11:40:06] <f[x]> > [18:19:11] <rkit> для ооп полиморфизма не нужно ничего в рантайме
это как? и vmt не нужно?
[11:40:07] <lambdabot> Illegal character ''\187''
[11:46:20] nealar вошёл(а) в комнату
[11:52:16] <rkit> что это такое
[11:53:28] <balodja> хз, видимо virtual method table
[11:53:32] <balodja> костыль из всяких с++ов
[11:58:49] <balodja> vmt вообще ущербная достаточно штука, оно даже мультидиспатч не поможет сделать
[11:59:03] <balodja> да и во всяких питонах и смоллтолках этого и в помине нет
[11:59:26] <balodja> да и для ооп не обязательно иметь рантаймовый диспатч
[12:00:03] <balodja> да и хацкель не для ооп придумывался
[12:01:23] <f[x]> не суть, механизм для диспатчинга в рантайме
[12:02:09] <f[x]> т.е. indirect call
[12:02:32] <f[x]> как без этого получить "ооп полиморфизм"?
[12:03:16] <kpierre> хацкель не для этого придумывался, а рантаймовый диспатч в нем есть :-)
[12:03:18] <kpierre> технически
[12:03:22] <balodja> тут трудно вообще сказать, когда именно диспетчеризация происходит. по большей части во время компиляции, что не укладывается в компиляцию, то там в функцию явно указатели на инстансы передаются
[12:03:44] <balodja> *а что не укладывается в компиляцию
[12:04:16] <balodja> и это далеко не vmt
[12:04:20] <f[x]> я вообще не про хацкель, а про ооп полиморфизм без рантайм дистпатча
[12:04:26] <kpierre> в общем, хаскель это ооп-язык с конечным кол-вом инстансов объектов
[12:04:43] <kpierre> точнее, с известными в компайл-тайме инстансами
[12:05:05] balodja вообще слабо представляет, как писать на хаскеле в ооп-стиле
[12:05:11] <f[x]> balodja: ну не массив по индексу, а хэш-таблица по строке - какая принципиальная разница?
[12:05:14] <balodja> как делать наследование?
[12:05:25] <portnov_work> balodja: gtk2hs *_*
[12:05:28] <balodja> f[x]: нет хеш-таблиц, нет массивов
[12:05:37] <balodja> указатель на инстанс, что не ясно?
[12:05:40] <kpierre> balodja, я не про наследование, а про тупеклассы
[12:05:45] <balodja> а, ок
[12:05:53] <f[x]> ну и это vmt
[12:06:01] <balodja> нет
[12:06:07] <balodja> это совсем не vmt
[12:06:36] <balodja> kpierre: ну, скажем, это мой отдельный вопрос. просто интересно :)
[12:08:14] <balodja> хотя всякие инстансы в стиле MonadIO m => MonadIO (StateT s m) можно, наверное, считать наследованием
[12:08:37] <f[x]> balodja: и как же оно работает? как происходит вызов функции и для чего нужен указатель на инстанс (и что такое инстанс?)
[12:08:52] <rkit> насколько я понимаю ооп-полиморфизм, это возможность предоставить разные реализации одного интерфейса
[12:09:07] <f[x]> угу
[12:09:19] <rkit> если на момент компиляции известны все реализации, то нафига тут что-то в рантайме?
[12:09:27] <f[x]> конечно неизвестны :)
[12:10:43] <f[x]> во-вторых даже если известны - классический пример - массив указателей на интерфейс
[12:11:31] <balodja> f[x]: а чего не ясно в том, что такое инстанс? оъявленные функции тайпкласса для определенного типа
[12:11:32] <rkit> это в совсем динамических каких-то языках неизвестны
[12:12:14] const_ptr вошёл(а) в комнату
[12:12:19] <f[x]> balodja: и последний вопрос - что такое vmt? не таблица ли указателей на объявленные функции определённого типа?
[12:13:02] <f[x]> rkit: плагины например
[12:14:42] <valexey> дык этта. независимая компиляция же :-) мы знаем лишь номер функции которую хотим вызвать из таблицы. сам указатель на функцию в момент компиляции мы не знаем.
[12:15:10] <balodja> f[x]: в ваших плюсах оно принадлежит типу, а здесь оно принадлежит объявленной реализации. это разные вещи
[12:15:35] <balodja> ты слишком обобщаешь это понятие
[12:16:07] <valexey> эти ваши объявленные реализации это ж концепты из c++0x. которых правда вырезали.
[12:16:13] <f[x]> balodja: в рантайме-то эффект один и тот же :)
[12:16:29] <balodja> ну тогда это называется диспетчеризация, а не vmt :)
[12:16:38] <f[x]> вызов функции по индексу из таблички
[12:16:51] <valexey> они да. на этапе компиляции живут как и всё иное шаблонное богомерзие.
[12:16:57] <f[x]> ну да - vmt это способ диспетчиризации (в рантайме)
[12:17:05] <balodja> vmt'ой не называют каждый вызов функции из таблички
[12:17:53] <valexey> короче я понял. можно ж банально в данных таскать с собой табличку с функциями :-) то на то и выйдет.
[12:17:58] sannysanҨff_ вошёл(а) в комнату
[12:18:00] <f[x]> ну да, соберём кучку функций в табличку - указатель на табличку будем таскать в рантайме - и изобретём какой-то новый термин чтобы не называть это vmt
[12:18:06] <valexey> реализуется за пять минут.
[12:18:15] <kpierre> f[x], уже есть термин
[12:18:20] <kpierre> словарь такое называется :-)
[12:18:32] <rkit> плагины это уже как раз динамика
[12:18:49] <rkit> но уговорил, в особых случаях нужно
[12:20:19] <f[x]> словарь/vmt/тайпкласс - не я начал к терминам придираться - суть одна и та же - рантайм диспатч (по индексу в табличке)
[12:20:30] <valexey> kpierre: словарь это общий термин. таблица виртуальных функций -- конкретное применение.
[12:20:45] <balodja> методов же, методов! :)
[12:21:24] <kpierre> f[x], суть одна и та же, но причины разные. в с++ по делу, в хаскеле -- недостатки конкретной реализации
[12:21:44] <balodja> да и применение разное
[12:22:36] <f[x]> о байты, не используй в методе this, а используй только аргументы - та же функция
[12:23:00] <rkit> чего вы несете за фигню вообще
[12:23:00] <sannysanҨff_> дискуссия ведется об "jmp 0x2222  супротив mov eax,[edi+44]; jmp eax" ?
[12:23:15] <f[x]> sannysanҨff_: угу
[12:23:16] <balodja> дискуса нет
[12:28:30] sannysanҨff вышел(а) из комнаты
[12:31:43] <balodja> кхм, один я вижу разницу между таблицами вызовов для типов или для инстансов типов? и что у каждого типа есть столько этих таблиц, сколько и инстансов, а так же указатели на эти таблицы не таскаются вместе с указателями на данные?
[12:32:22] <balodja> скажем, в ghc таблицы вызовов есть даже у всех замыканий. это тоже vmt считать?
[12:32:41] <kpierre> замыкания это те же объекты, так что считать
[12:33:16] <kpierre> или ты о чем-то другом
[12:33:18] <portnov_work> balodja: помнишь притчу про Мастера и ученика, и объекты супротив заклинаний?
[12:33:32] <portnov_work> ты ещё не достиг просветления? ;)
[12:34:13] <balodja> kpierre: ну, я про замыкания в ghc. которыми представляются все данные: и обертки(thunk), и частичные применения, и функции, и все-все-все
[12:34:34] <balodja> portnov_work: мне до просветления еще жить и жить, судя по всему :)
[12:34:50] balodja ушел
[12:35:03] <portnov_work> в таких притчах просветление обычно достигается в результате последовательности подзатыльников.
[12:57:13] rexim вошёл(а) в комнату
[13:00:41] dottedmag вошёл(а) в комнату
[13:04:05] happy_grapefruit вошёл(а) в комнату
[13:08:44] <rkit> что за монстры блин
[13:09:03] <rkit> в ghc ТРИ промежуточных языка
[13:09:23] <rkit> пойди найди в каком они запрятали эту вашу vmt
[13:09:44] <Gebb> Расскажи про эти языки.
[13:10:31] <rkit> The core language <http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/CoreSynType> The STG language <http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/StgSynType> The Cmm language <http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/CmmType>
[13:10:33] <lambdabot> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/CoreSynType>
[13:19:14] nealar вышел(а) из комнаты: Replaced by new connection
[13:19:19] nealar вошёл(а) в комнату
[13:49:58] <balodja> rkit: ну, три промежуточных, и чего теперь? от этого меняется то, как представлены замыкания и инстансы в нативном коде? cmm -- это вообще слегка похаченный си, ибо им не хватило стандарта для реализации виртуальной машины
[13:50:02] bobry вышел(а) из комнаты
[13:50:04] asqz вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[13:50:10] <balodja> пардон, эффективной реализации
[13:52:27] nealar вышел(а) из комнаты
[13:53:29] <rkit> я про то, что в этом бардаке сложно разобраться
[13:59:53] asqz вошёл(а) в комнату
[14:25:40] <balodja> согласен. причем реальное положение дел в компиляторе всегда сильно отличается от описанного в статьях
[14:27:57] happy_grapefruit вышел(а) из комнаты
[14:39:42] happy_grapefruit вошёл(а) в комнату
[14:39:43] nealar вошёл(а) в комнату
[14:45:01] <valexey> публичное избиение явы: http://forum.oberoncore.ru/viewtopic.php?f=27&t=2878
[14:46:24] <Dema> valexey, всё просто - первые 255 чисел кэшируютсяч
[14:46:39] <valexey> точнее от -127 до 127
[14:46:46] <valexey> я там об этом написал.
[14:46:52] <balodja> а -128?
[14:46:58] <valexey> но от этого этот код лучше не становится.
[14:47:09] <valexey> нужно глянуть :-)
[14:47:19] <balodja> signed char -- это же -128..127
[14:48:10] <valexey> -128, да
[14:48:13] <aleksey> там наверно пофигу char это или не char, просто поставили условие от сих до сих
[14:48:42] <valexey> просто влазит в один байт или нет :-)
[14:49:02] <valexey> интересно как оно себя ведет на машинах где байт 9ти битный например?
[14:49:34] <valexey> да, и это не извиняет рязного поведения <= и ==
[14:49:47] <valexey> в первом случае автоанбоксинг есть, во втором нет.
[14:49:49] <Dema> valexey, welcome to Scala :)
[14:50:10] <valexey> Dema: а там точно нет своих подобных WTF'ов?
[14:50:21] <Dema> valexey, пока не знаю :)
[14:50:34] <Dema> но такого там нет, там == и equals поменяны местами
[14:50:38] <valexey> да я вот про жабу тоже не знал. до недавнего времени.
[14:50:48] <valexey> угу-угу. там другое. :-)
[14:55:55] dottedmag вышел(а) из комнаты
[15:03:20] asqz вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[15:08:29] dottedmag вошёл(а) в комнату
[15:13:41] nealar вышел(а) из комнаты
[15:21:58] asqz вошёл(а) в комнату
[15:28:20] nealar вошёл(а) в комнату
[15:32:51] tranquil вышел(а) из комнаты
[15:37:18] portnov_work вышел(а) из комнаты
[15:40:21] covaxi вышел(а) из комнаты
[16:11:14] iNode вышел(а) из комнаты
[16:11:28] iNode вошёл(а) в комнату
[16:16:33] portnov вышел(а) из комнаты
[16:17:51] portnov вошёл(а) в комнату
[16:18:26] balodja вышел(а) из комнаты
[16:23:19] portnov вышел(а) из комнаты
[16:28:46] Dema вышел(а) из комнаты
[16:55:38] moonhawk вошёл(а) в комнату
[17:05:44] portnov вошёл(а) в комнату
[17:07:08] asqz вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[17:07:31] nealar вышел(а) из комнаты: Replaced by new connection
[17:07:34] nealar вошёл(а) в комнату
[17:09:02] catap вышел(а) из комнаты
[17:11:44] portnov вышел(а) из комнаты
[17:12:20] portnov вошёл(а) в комнату
[17:16:41] iserge вошёл(а) в комнату
[17:16:50] portnov вышел(а) из комнаты
[17:17:01] portnov вошёл(а) в комнату
[17:18:14] rkit вышел(а) из комнаты
[17:26:37] asqz вошёл(а) в комнату
[17:29:24] nealar вышел(а) из комнаты
[17:34:08] nealar вошёл(а) в комнату
[17:34:10] asqz вышел(а) из комнаты
[17:34:31] portnov вышел(а) из комнаты
[17:35:07] portnov вошёл(а) в комнату
[17:39:37] portnov вышел(а) из комнаты
[17:40:14] portnov вошёл(а) в комнату
[17:46:14] portnov вышел(а) из комнаты
[17:46:28] portnov вошёл(а) в комнату
[17:48:33] rkit вошёл(а) в комнату
[17:55:41] asqz вошёл(а) в комнату
[17:57:43] daapp вышел(а) из комнаты
[18:02:29] portnov вышел(а) из комнаты
[18:03:09] portnov вошёл(а) в комнату
[18:09:44] happy_grapefruit вышел(а) из комнаты: offline
[18:12:16] Gebb вышел(а) из комнаты
[18:17:10] portnov вышел(а) из комнаты
[18:17:36] portnov вошёл(а) в комнату
[18:23:37] portnov вышел(а) из комнаты
[18:24:36] portnov вошёл(а) в комнату
[18:25:11] asqz вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[18:29:37] portnov вышел(а) из комнаты
[18:29:51] portnov вошёл(а) в комнату
[18:34:25] asqz вошёл(а) в комнату
[18:38:25] nealar вышел(а) из комнаты: Replaced by new connection
[18:38:28] nealar вошёл(а) в комнату
[18:40:22] \o->o вошёл(а) в комнату
[18:41:52] portnov вышел(а) из комнаты
[18:42:30] portnov вошёл(а) в комнату
[18:45:24] dottedmag вышел(а) из комнаты
[18:45:48] dottedmag вошёл(а) в комнату
[18:55:51] hobbit вышел(а) из комнаты: Replaced by new connection
[18:55:52] hobbit вошёл(а) в комнату
[18:57:31] portnov вышел(а) из комнаты
[18:58:30] portnov вошёл(а) в комнату
[19:02:37] catap вошёл(а) в комнату
[19:04:01] portnov вышел(а) из комнаты
[19:04:36] portnov вошёл(а) в комнату
[19:07:36] Victor вышел(а) из комнаты
[19:11:48] dottedmag вышел(а) из комнаты
[19:12:56] dottedmag вошёл(а) в комнату
[19:12:57] dottedmag вышел(а) из комнаты
[19:13:21] dottedmag вошёл(а) в комнату
[19:16:54] iNode вышел(а) из комнаты
[19:17:36] portnov вышел(а) из комнаты
[19:18:19] portnov вошёл(а) в комнату
[19:19:04] tranquil вошёл(а) в комнату
[19:23:25] f[x] вышел(а) из комнаты
[19:24:49] portnov вышел(а) из комнаты
[19:25:15] Gebb вошёл(а) в комнату
[19:25:34] portnov вошёл(а) в комнату
[19:34:03] portnov вышел(а) из комнаты
[19:34:35] portnov вошёл(а) в комнату
[19:39:12] portnov вышел(а) из комнаты
[19:39:28] portnov вошёл(а) в комнату
[19:43:41] asqz вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[19:46:58] portnov вышел(а) из комнаты
[19:47:13] portnov вошёл(а) в комнату
[19:50:59] const_ptr вышел(а) из комнаты
[19:52:13] portnov вышел(а) из комнаты
[19:52:36] portnov вошёл(а) в комнату
[19:58:36] portnov вышел(а) из комнаты
[19:59:08] portnov вошёл(а) в комнату
[20:00:31] hobbit вышел(а) из комнаты: Replaced by new connection
[20:00:32] hobbit вошёл(а) в комнату
[20:02:37] catap вышел(а) из комнаты
[20:04:17] Dema вошёл(а) в комнату
[20:07:41] balodja вошёл(а) в комнату
[20:09:01] nealar вышел(а) из комнаты: Replaced by new connection
[20:09:11] nealar вошёл(а) в комнату
[20:16:58] portnov вышел(а) из комнаты
[20:17:56] portnov вошёл(а) в комнату
[20:19:08] happy_grapefruit вошёл(а) в комнату
[20:21:21] portnov вышел(а) из комнаты
[20:21:23] Dema вышел(а) из комнаты
[20:22:09] portnov вошёл(а) в комнату
[20:22:38] urbanserj вошёл(а) в комнату
[20:25:35] portnov вышел(а) из комнаты
[20:25:56] portnov вошёл(а) в комнату
[20:28:12] rexim вышел(а) из комнаты
[20:35:20] <balodja> какие cvs использовать для хаскель-кода?
[20:38:03] <balodja> черт, vcs. вечно путаюсь в tla
[20:40:22] portnov вышел(а) из комнаты
[20:40:36] <L29Ah> какая разница?
[20:41:03] portnov вошёл(а) в комнату
[20:41:07] <L29Ah> ну, у хаскельбоев по понятной причине моден darcs
[20:42:23] <balodja> меня интересуют не "понятные" причины, меня интересуют объективные недостатки или достоинства использования для хаскель-кода разных vcs
[20:42:30] <balodja> например, git, hg и darcs
[20:43:17] <nerr> git
[20:43:21] <nerr> реже hg
[20:43:26] <nerr> кое-где по привычке даркс
[20:43:33] <L29Ah> > объективные недостатки или достоинства
[20:43:35] <lambdabot> Illegal character ''\190''
[20:43:43] <balodja> nealar: это ты имеешь в виду частоту использования?
[20:44:03] <nerr> объективные недостатки darcs: он говно
[20:44:14] <kpierre> почему? самый простой
[20:44:26] <nealar> +1
[20:44:29] <nealar> реально простой
[20:44:36] <nealar> и мануал люди пейсали
[20:44:48] <balodja> а он дает какие-нибудь плюшки для непосредственно хаскель-проектов?
[20:45:00] <nerr> ну вот например как привести рабочую директорию в первозданное состояние?
[20:45:17] <kpierre> это зачем?
[20:45:29] portnov вышел(а) из комнаты
[20:45:31] <nerr> ну если я там сильно намусорил и удалил нужные файлы
[20:45:33] <kpierre> ну, rm -r *?
[20:45:45] <balodja> ладно, возьму hg, ибо умею
[20:45:49] portnov вошёл(а) в комнату
[20:45:53] <nerr> 'это не первозданное а чистое
[20:46:06] <nealar> balodja: это самая правильная мотивация
[20:46:15] <kpierre> nerr, darcs revert
[20:46:21] <nealar> милисекунды производительности нафиг не нужны
[20:46:38] <nealar> а удобство, субъективное, лично для тебя - рулит
[20:46:50] <nerr> kpierre: darcs revert не вернет файлы на место
[20:47:01] <kpierre> да?
[20:47:05] <kpierre> cейчас проверю
[20:47:08] <nerr> и не удалит те файлы, которые не находятся под контролем VCS
[20:47:16] <balodja> ну меня производительность и не интересовала. ибо проект сейчас около 2 тыщ строк, а будет в сумме около 10. то есть немного
[20:47:35] balodja ядра для ос писать не собирается
[20:47:44] <L29Ah> вброшу штоле monotone
[20:48:14] <kpierre> nerr, только что проверил
[20:48:20] <kpierre> возвращает на место
[20:48:29] <kpierre> удалять конечно не удаляет
[20:48:44] <nerr> ок, но по-прежнему  не удаляет
[20:48:45] portnov вышел(а) из комнаты
[20:48:59] <nerr> и что же мне теперь делать с моей грязной директорией
[20:49:03] <nealar> ы
[20:49:04] <kpierre> bash?
[20:49:27] portnov вошёл(а) в комнату
[20:49:35] <kpierre> сначала darcs show files, конечно
[20:49:35] nealar не считает удаление неверсионированных файлов хорошей идеей по умолчанию
[20:49:37] <nerr> ага, на darcs подсказали написать однострочник
[20:49:54] <kpierre> так оно затем и есть простое
[20:50:21] <nerr> nealar: svn считает удаление своей базы кощунством, поэтому ставит на все файлы u-w
[20:57:21] Typhon вошёл(а) в комнату
[20:57:23] portnov вышел(а) из комнаты
[20:58:04] Kakadu вошёл(а) в комнату
[20:58:09] portnov вошёл(а) в комнату
[20:59:51] iNode вошёл(а) в комнату
[21:02:30] <Kakadu> помогите написать List.reverse с помощью foldr и лямбд. Я думаю что тут нужны continuationы, но у меня не получается написать
[21:02:52] <Kakadu> например, я не понимаю какого типа аккумулятор должен быть
[21:04:05] portnov вышел(а) из комнаты
[21:04:24] portnov вошёл(а) в комнату
[21:04:26] <balodja> не нужны
[21:05:05] <Kakadu> ой, я кажется случайно написал сам)
[21:05:11] <kpierre> Kakadu, по-идиотски:
[21:05:12] <kpierre> > foldr (:) [] [1,2,3]
[21:05:16] <lambdabot> [1,2,3]
[21:05:17] <kpierre> тьфу
[21:05:24] <kpierre> > foldr (\x l -> l++[x]) [] [1,2,3]
[21:05:27] <lambdabot> [3,2,1]
[21:05:29] <Kakadu> нет, не написал
[21:06:22] <Kakadu> в условии есть приприска "При этом функция должна работать за линейное время."
[21:06:43] <balodja> за линейное, все правильно
[21:07:23] <Kakadu> если это работает за линейное время, то я балерина
[21:09:20] portnov вышел(а) из комнаты
[21:09:54] portnov вошёл(а) в комнату
[21:10:05] <kpierre> Kakadu, может все-таки foldl?
[21:10:07] <kpierre> > foldl (\l x -> x:l) [] [1,2,3]
[21:10:10] <lambdabot> [3,2,1]
[21:10:11] <Kakadu> > foldr (\x acc -> (\y -> (acc (x:y) ) ) ) (\x -> x) [1..10] $ []
[21:10:15] <lambdabot> [10,9,8,7,6,5,4,3,2,1]
[21:10:19] <Kakadu> ура
[21:10:36] <Kakadu> нет, в задании сказано foldr
[21:10:46] <balodja> действительно не линейное
[21:10:56] <balodja> Kakadu: а это линейное?
[21:11:20] <Typhon> balodja, да
[21:11:21] <L29Ah> @src reverse
[21:11:21] <lambdabot> reverse = foldl (flip (:)) []
[21:12:00] <Kakadu> а где @src работает?
[21:12:16] <Kakadu> L29Ah: это к вам
[21:12:32] <L29Ah> в lambdabot'е
[21:12:50] portnov вышел(а) из комнаты
[21:12:51] <L29Ah> см. хекедж
[21:13:08] <Kakadu> @src reverse
[21:13:08] <lambdabot> reverse = foldl (flip (:)) []
[21:13:13] portnov вошёл(а) в комнату
[21:13:28] <Kakadu> @arc flip
[21:13:29] <lambdabot> Maybe you meant: arr rc src
[21:13:36] <Kakadu> @src flip
[21:13:36] <lambdabot> flip f x y = f y x
[21:14:57] <kpierre> Kakadu, изврат какой
[21:15:04] <kpierre> (я про задание
[21:15:05] <kpierre> )
[21:15:41] <Kakadu> Пусть a, b, c, k, l, m целые числа и НОД(a, b, c) = НОД(k, l, m) = 1. Найти целые x, y, z такие, что:
a*x+b*y+c*z=1
k*x+l*y+m*x=1
[21:15:48] <Kakadu> вот это гораздо больший изврат
[21:15:54] <L29Ah> kpierre: няшное задание
[21:15:55] <Kakadu> я это пока не сделал
[21:16:10] <L29Ah> слэшми тоже сначала не понял
[21:16:10] portnov вышел(а) из комнаты
[21:16:13] <balodja> google китайская теорема об остатках
[21:16:59] portnov вошёл(а) в комнату
[21:17:36] <aleksey> google расширеный алгоритм евклида
[21:18:26] <Kakadu> balodja: не понял , ге вы тут видите взаимно простые числа?
[21:18:35] <aleksey> а там m*x или m*z?
[21:18:45] <Kakadu> aleksey: Про расширенный алгорифм евклида была первая задача, это вторая
[21:19:02] <balodja> aleksey: справедливо
[21:19:03] <Kakadu> m*z
[21:19:12] <balodja> Kakadu: просто не день бекхема
[21:19:55] portnov вышел(а) из комнаты
[21:20:05] <Kakadu> Существенный вопрос такой: мне могут помочб сильно comprehetion'ы ?
[21:20:13] portnov вошёл(а) в комнату
[21:27:09] portnov вышел(а) из комнаты
[21:27:32] portnov вошёл(а) в комнату
[21:29:08] nealar вышел(а) из комнаты
[21:31:28] portnov вышел(а) из комнаты
[21:31:47] portnov вошёл(а) в комнату
[21:36:57] <kpierre> > (foldr1 (flip (.)) $ map (\x l -> x:l) [1,2,3]) []
[21:37:01] <lambdabot> [3,2,1]
[21:37:08] <kpierre> > (foldr1 (.) $ map (\x l -> x:l) [1,2,3]) []
[21:37:12] <lambdabot> [1,2,3]
[21:37:21] <kpierre> > (foldl1 (flip (.)) $ map (\x l -> x:l) [1,2,3]) []
[21:37:24] <lambdabot> [3,2,1]
[21:37:32] <kpierre> > (foldl1 (.) $ map (\x l -> x:l) [1,2,3]) []
[21:37:35] <lambdabot> [1,2,3]
[21:37:39] <kpierre> ну, теперь ясно
[21:37:44] portnov вышел(а) из комнаты
[21:38:02] portnov вошёл(а) в комнату
[21:38:08] <balodja> подобие difference lists?
[21:38:14] <kpierre> ага
[21:38:35] <balodja> тогда действительно линейное время
[21:40:59] portnov вышел(а) из комнаты
[21:41:16] portnov вошёл(а) в комнату
[21:41:31] <balodja> чорт, пока я не почитал про виртуальную машину ghc, тоже на глаз без проблем оценивал время работы алгоритма
[21:42:02] <balodja> а теперь, видимо, нужно окасаки штудировать
[21:42:10] <kpierre> окасаки бесполезно
[21:42:23] <balodja> а что полезно?
[21:42:29] <Typhon> исходники? :D
[21:42:38] <kpierre> только наизусть знать все правила fusion и исходники strictness analyzer наизусть
[21:43:16] <balodja> мило :)
[21:43:21] balodja вышел(а) из комнаты
[21:52:42] <tranquil> > Total world's population of Haskell programmers would fit on 1155 Boeing 747s...
[21:52:43] <lambdabot> Parse error at "of" (column 26)
[21:55:14] <Typhon> с yac2010 "яндекс не хочет помочь эрлангистам проводить свои мероприятия? -- да, вы вдвоем можете придти" %)
[21:57:13] portnov вышел(а) из комнаты
[21:58:05] portnov вошёл(а) в комнату
[22:02:01] portnov вышел(а) из комнаты
[22:03:00] portnov вошёл(а) в комнату
[22:05:57] portnov вышел(а) из комнаты
[22:06:44] portnov вошёл(а) в комнату
[22:06:54] portnov вышел(а) из комнаты
[22:07:06] <tranquil> тыща самолётов не так уж и мало
[22:07:59] <L29Ah> пять лет назад говорили про один
[22:08:06] <L29Ah> хаскелисты плодятся с ужасающей скоростью
[22:08:27] <tranquil> а, т.е. самолет это не просто так. я то думаю чего это они в самолетах меряют
[22:09:44] <L29Ah> это мем, да
[22:16:26] <penir> "Мем" значит шутка
[22:21:27] Kakadu вышел(а) из комнаты: Replaced by new connection
[22:21:29] Kakadu вошёл(а) в комнату
[22:38:16] moonhawk вышел(а) из комнаты
[23:20:08] dottedmag вышел(а) из комнаты
[23:21:29] dottedmag вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!