Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 18 августа 2009< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся!
Конфигурация комнаты

GMT+4
[01:01:05] sceptic вышел(а) из комнаты
[03:57:55] daapp вошёл(а) в комнату
[04:13:17] sevenov вышел(а) из комнаты: Replaced by new connection
[04:13:19] sevenov вошёл(а) в комнату
[04:15:17] john вышел(а) из комнаты
[04:35:25] john вошёл(а) в комнату
[07:51:54] gds вышел(а) из комнаты: Replaced by new connection
[07:51:55] gds вошёл(а) в комнату
[08:07:51] gds вышел(а) из комнаты
[09:11:46] gds вошёл(а) в комнату
[10:48:30] f[x] вошёл(а) в комнату
[11:08:50] Typhon вошёл(а) в комнату
[11:15:45] DiGiTAL_CuRSe вышел(а) из комнаты
[11:38:32] f[x] вышел(а) из комнаты: Logged out
[11:41:55] f[x] вошёл(а) в комнату
[11:42:25] f[x] вышел(а) из комнаты
[11:44:58] Mon вышел(а) из комнаты
[11:46:07] Mon вошёл(а) в комнату
[11:51:16] f[x] вошёл(а) в комнату
[12:11:59] sceptic вошёл(а) в комнату
[12:12:48] sceptic вышел(а) из комнаты: Replaced by new connection
[12:12:52] sceptic вошёл(а) в комнату
[12:54:19] john вышел(а) из комнаты
[13:11:45] Mon вышел(а) из комнаты
[13:12:23] Mon вошёл(а) в комнату
[13:44:40] sevenov вышел(а) из комнаты: Replaced by new connection
[13:44:41] sevenov вошёл(а) в комнату
[13:57:52] john вошёл(а) в комнату
[14:20:56] daapp вышел(а) из комнаты
[16:09:02] <ermine> хнык
[16:09:41] <ermine> к вопросу имплементации нетграфов - как можно делать приоритетные списки с ответвлениями?
[16:44:19] sevenov вышел(а) из комнаты
[16:56:11] <gds> ermine: а тупым образом -- не? вроде ничего сверххитрого.
[17:01:52] john вышел(а) из комнаты
[17:13:37] ermine вышел(а) из комнаты: Replaced by new connection
[17:13:38] ermine вошёл(а) в комнату
[17:15:06] <ermine> хнык
[17:15:22] <ermine> да я в пути глухого поиска
[17:20:49] <gds> а нафига нетграф?
[17:23:22] <ermine> хачу систему хуков родить
[17:23:43] <ermine> поставить этот хук после того хука, а тот хук - перед этим
[17:24:00] <ermine> при этом не факт что какой-то уже есть в списке
[17:24:09] <gds> а если нэту?
[17:24:37] <ermine> и еще надо выбрать чем выразить приоритет - цифрами или именами
[17:25:07] <ermine> вот если "нету", то с цифровыми приоритетами все понятно
[17:25:31] <gds> тебе понятно, а мне не совсем.
[17:26:00] <ermine> ну ты вон этой функции ставить приоритет 10, а вон этой - 20
[17:26:05] <ermine> и тупо сортируешь
[17:26:10] <ermine> неважно кого нет
[17:27:09] <ermine> но мне еще подумалось, что можно подумать об ответвлениях - когда функции зависят от других
[17:34:23] john вошёл(а) в комнату
[17:36:52] gds вышел(а) из комнаты
[17:59:56] <f[x]> открытие - полиморфные варианты можно писать с маленькой буквы :)
[18:30:40] <ermine> да ну?
[18:31:05] <ermine> хотя там палюбому закорючка спереди стоит
[18:31:12] gds вошёл(а) в комнату
[18:32:53] <gds> f[x]: слышал в caml-list, что на это особо рассчитывать не стоит. точнее, что это пережиток прошлого.
сходу искать влом.
но я вариантные типы, даже bool, всегда пишу с большой!
[18:34:29] <f[x]> ясно, в примерах lablgtk2 увидел
[18:35:54] <gds> ermine: ну вот с идентификацией строками тоже тупая сортировка, на худой конец.
Однако, если есть зависимости, я бы расписал их явным образом. Даже в виде строк, чтобы плагин говорил, кем он является и кого он хочет. Куда прицепить приоритеты -- не суть важно.
Если есть определённые типы, то фактически плагин будет
{ name : string ; requires : string list ; action : intype -> outtype }
[18:39:11] <ermine> ы
[18:39:21] ermine зевает и бьется головой об стол
[18:39:48] <gds> надеюсь, не одновременно?
[18:40:14] <ermine> я пока только сейчас применила экспшны для Map.iter
[18:40:34] <ermine> какие же неудобные библиотеки в камле
[18:40:54] <ermine> не дают завершить итерацию в любом месте
[18:40:56] <gds> а ты юзаешь extlib или батарейки?
[18:41:21] <ermine> ни то ни другое
[18:41:36] <gds> ну и какие претензии к окамлу тогда :)
[18:42:09] <gds> претензии к како-демикам из инриа, максимум.
[18:42:10] <ermine> мравни с богатством родных библиотек для ghc
[18:42:19] <ermine> вот где претензии
[18:42:58] <gds> родные, не родные. после твоей make libs как бы не пофиг ли, какие библиотеки в комплект включать?
[18:44:20] <ermine> нету больше make libs
[18:44:37] <gds> омг, она убила make libs!
[18:44:55] <ermine> я убила Makefiles фсе
[18:45:09] <ermine> поверила талмуду про камлобилд, что макефиле - зло
[18:45:51] <gds> "
вот и верь после этого людям:
отдалась я ему при луне,
а он нежные девичьи груди
мне узлом завязал на спине
"
[18:47:31] <ermine> ужос
[18:50:03] <gds> хорошо хоть у меня нет нужды собирать им что-то хитрое, ну и я не стремаюсь руками указать, откуда -I растут. А так бы -- ну не вешался бы, но работы прибавилось бы.
[18:50:46] ermine приступила к написанию первой функции, которую надо засунуть в хук
[18:50:54] <ermine> а может еще надо чаю
[18:51:33] <ermine> вчера решала другую проблему многочасовым вялым переписыванием полсотни строк кода
[18:51:54] <ermine> похоже, переписывание - моя стезя
[18:53:58] f[x] юзает во всех проектах вот такое - http://repo.or.cz/w/sqlgg.git?a=blob;f=src/myocamlbuild_config.ml;hb=HEAD
[19:05:52] <gds> f[x]: идея здравая. сохранил, при случае буду использовать.
[19:07:18] <gds> ermine: если я переписываю типы, всё почти нормально. если я переписываю код более раза, значит я плохо подумал. думаю ещё, налепливаю самые очевидные абстракции, смотрю результат. обычно путём декомпозиции вылазит лажа, рано или поздно.
[19:18:10] <ermine> gds: ну сульци писался впервые когда я еще только вникала в камло
[19:18:36] <ermine> а сейчас к этому добавляется знание протокола и поэтому хочется охватить все нюансы
[19:19:08] <ermine> и как результат новая сульци вообще не похожа на старую
[19:19:29] <gds> "всё правильно сделала"
[19:20:08] <ermine> два года назад я мечтала писать код раз и навеки
[19:20:29] <ermine> сейчас думаю что хорошо бы, если потом не придется переписать нафик
[19:20:48] <ermine> а только подправлять местами
[19:35:27] <gds> да почти всегда придётся переписывать. задачи меняются, их понимание меняется, требуемая гибкость работы тоже меняется. совсем универсально писать -- нереально, ибо где-то ведь обязана полезная логика наличествовать.
[19:45:54] ermine выпила чаю и пошла сворачивать горы в коде
[19:49:59] 604 вошёл(а) в комнату
[19:50:20] <604> омг
[19:50:29] <604> тут живые люди есть
[19:50:40] <gds> не, зомбаки.
[19:50:49] <604> значит не всё потеряно :)
[19:51:01] <gds> я ничего не находил.
[19:52:12] <604> что можно почитать новичку по окамлу, желательно на русском?
[19:52:24] f[x] вышел(а) из комнаты
[19:52:45] <ermine> учебник английского языка
[19:53:00] <gds> что знаищь? важны языки программирования и естественные языки.
[19:53:14] <604> русской литературы вообще нет?
[19:53:47] <ermine> та был на народе перевод
[19:53:56] <gds> есть русская. но её много, зависит от имеющихся уже знаний.
[19:54:09] Typhon вышел(а) из комнаты
[19:54:13] <gds> "много" -- в смысле "более одного мануала".
[19:54:20] <604> знание ФЯ - около нуля
[19:55:23] <ermine> fprog.ru есть еще, но там не про камло только
[19:56:59] <604> нашел "Developing Applications With Objective Caml" от какого-то O'Reilly, yj nfv yf fyuk? gj'njve neujdfnj bl`n
[19:57:07] <604> чорт
[19:57:23] <604> *но там на англисйком, поэтому туговато идёт
[19:57:46] <ermine> это хорошая книжка
[19:58:16] <gds> важны знания: структурного программирования в целом, математики (понятия, что такое алгебра). Если общее понятие алгебры (или, более обще, теории категорий) есть, то это одно дело (моей тупой обучалки хватит). Если хорошее структурное программирование в скиллах, то проще русский перевод мануала, на [o]caml.spb.ru вроде. Если none of above, то тот самый DAOC хорош будет. Есть русский вариант.
[19:58:43] <sceptic> DAWOC есть на русском
[19:58:55] <ermine> gds: да ты чего, просто устрой экзамен
[19:58:55] <gds> ага, есть, в том-то и дело.
[19:59:05] <604> экзамен?
[19:59:14] <gds> нафига.
[19:59:24] <gds> я предлагаю, а не ограничиваю.
[20:00:17] <gds> и предлагаю выбрать согласно имеющемуся бэкграунду.
[20:01:00] <gds> например, ассемблерщики ведутся вверх через forth -> lisp -> ...
[20:01:01] <604> теория категорий? первый раз слышу :(
[20:01:26] <gds> 604: ой нет, лучше и не надо. Для практических целей -- нафиг не нужно.
[20:01:41] <604> на асм я забил ввиду бесперспективности
[20:02:26] <604> в том смысле, что ничего стоящего не напишешь
[20:02:46] <604> в обозримый промежуток времени
[20:02:48] <gds> напишешь. вот бы процессоры не менялись и жизнь была бы лет 150 гарантированных.
[20:02:57] <604> во-во
[20:03:16] <gds> ну тогда -- "наш клиент" :]
[20:03:51] <604> а что за "твоя обучалка"?
[20:06:16] <gds> там нужно понимать, что есть значения, и их можно конструировать/создавать, а можно использовать/деструктурировать.
и там нет ссылок на точный синтаксис.
сейчас конечно найду урл, но один чел слегка плевался по обоим вопросам (в основном по второму, но по нему был отправлен в мануал).
[20:10:46] <gds> вот: http://moldavcable.com/gds/ocaml_tutorial_revised_syntax_rus.html
[20:11:27] <604> спасибо
[20:11:48] <604> может у кого под рукой ссылка есть на перевод DAWOC?
[20:14:52] <gds> http://shamil.free.fr/comp/ocaml/
[20:17:28] <ermine> на молдавской ссылке оПХБЕР
[20:17:49] <604> как здорово
[20:17:58] ermine презрительно смотрит на gds
[20:18:48] <gds> а, ну да.
[20:19:01] <gds> малдаване, хуле :]
[20:20:08] <604> а с кодом не поможете? а то интерпретатор ругается, а я никак не пойму, что ему от меня надо. Как ночью на минном поле
[20:20:10] <gds> ща оформлю на человеческом хостинге.
[20:21:26] <gds> 604: о, тогда тебе прямо в самое начало моей статьи, если ругань на самые примитивные вещи.
Если не на примитивные, то -- после некоего собственного обдумывания. Желательно с выводами в виде "я хотел то, получилось
[20:21:29] <gds> .. это".
[20:23:14] <604> ну мне, с высоты моего опыта, трудно судить о том, "самые примитивные" это вещи или нет
[20:24:14] <gds> в простых случаях поможем.
[20:26:05] <604> ну вот самый простой пример: из списка list нужно удалить элемент с номером num (счет с нуля)
[20:26:31] <604> # let rec del list num =
if list = [] then []
else
if num = 0 then (List.tl list)
else List.hd :: del (List.tl list) num-1;;
[20:27:06] <604> а оно ругается
Characters 105-129:
else List.hd :: del (List.tl list) num-1;;
^^^^^^^^^^^^^^^^^^^^^^^^
Error: This expression has type int but is here used with type
('a list -> 'a) list
[20:27:29] <604> подчерикание начинается под del
[20:27:30] <gds> совет сразу: лучше использовать match для деструкции списка.
[20:27:54] <gds> насчёт конкретной ошибки -- видимо "(num-1)", приоритет.
[20:28:30] <604> т.е. теоретически алгоритм правильный?
[20:30:28] john вышел(а) из комнаты
[20:30:47] <604> я не пойму, какое выражение "имеет тип int"?
[20:31:04] <gds> если очень теоретически, то да. На деле же -- лучше выдавать правильную ошибку в случае, когда num > длины списка.
[20:31:41] <604> учту
[20:32:41] <gds> из-за приоритета операции "-" и из-за её типа получается, что то выражение, откуда отнимаем "1", имеет тип int.
[20:33:26] <604> т.е. он понял меня как
(del (List.tl list) num) - 1
[20:33:55] <gds> или даже (List.hd :: ... num) - 1, уж не помню приоритет "::"
[20:34:20] <604> точно
[20:34:49] <604> потому что del (List.tl list) (num-1) сработало
[20:38:33] <604> что ж, спасибо за помощь :)
[20:38:40] <gds> оно могло сработать как по тому, что "::" имеет приоритет ниже, так и потому, что выше, чем "-".
Я в сомнительных местах ставлю скобки, а потом, когда они задолбают, убираю их умно.
[20:38:43] <gds> http://overbld.abcname.net/ocaml_tutorial_revised_syntax_rus.html
[20:38:52] <604> пошел дальше ковырять
[20:38:53] <gds> и переложил, и кодировку поправил.
[20:39:14] <604> да и там нормально было
[20:39:44] <gds> ну, кривая была, по-любому.
кстати, советую pattern matching попробовать асилить. это как минимум интересно.
[20:40:10] <604> это не регэкспы?
[20:40:17] <gds> к счастью, нет.
[20:41:04] <604> понятно. просто ассоциации сработали на слова pattern и match
[20:42:02] <gds> тут у нас с этим строго! Типизация ведь.
Со списками (и вообще, где есть явные способы доступа к данным) можно и без него, но он рулит для деструкции значений. Разрушать/использовать через него -- просто радость.
[20:43:11] <604> я, собственно, из-за строгой типизации и выбрал окамль вместо лиспа
[20:45:45] <gds> и правильно -- из окамла захочется как вверх по типизации (в хаскели всякие), так и вверх по гибкости (в лиспы/схемы). Можно будет все свои метания заценить.
[20:46:21] <604> а есть человеческий способы работать с базами данных? подключиться, напрмер, к Mysql/Postgresql и таскать оттуда данные
[20:49:31] <gds> таки да. В нормальных ОС есть способы посмотреть на пакеты вида "ocaml-mysql*", "pg*ocaml", "ocaml-postg*" (точно названий не помню).
[20:49:57] <gds> тут уже вынужден отослать к импортным туториалам, там это освещают подробнее.
[20:51:25] <gds> кстати, для постгре есть даже compile-time проверки. Не всегда практично, но всё же.
[20:52:02] <604> я в нормальной ОС за две недели мучений так и не осилил настроить по человечески впн
[20:53:48] <gds> ну хз, я не админ в последнее время, ничего сказать не могу.
если чо, я тут местный драгдиллер, распространяю нелегальные виндовые билды.
[20:53:56] <604> а до этого еще примерно столько же собирал дрова под иксы для ноутбука (чтоб при этом вай фай не отваливался)
[20:57:17] <604> а, самый главный вопрос забыл: кто-нибудь использует ФЯ на работе?
[20:57:30] <gds> yarr
[20:57:46] <604> а остальные just for fun?
[20:58:31] <604> а что конкретно yarr делает?
[20:58:32] <gds> ну ygrek точно использует ещё. Да и мало тут народа, по сравнению с общей популяцией окамловодов.
[21:00:12] <604> я посмтрел на хаскелловской вики, что такие спецы требуются в дойче банк, перешёл по ссылке - Senior Java Developer
[21:00:14] <gds> yarr -- это образно, штоле.
конкретно для работы -- разгребаю бинарные форматы, разные sql'и, общаюсь с бд, разный мелкий утиль, чуть гуя на labltk.
[21:01:10] <gds> хаскель -- он такой специальный язык, умение использовать который гораздо ценнее необходимости его использовать :]
[21:03:52] <604> - Когда я научусь, я смогу уклоняться от пуль?
- Когда ты научишься, тебе не надо будет уклоняться от пуль (с) Матрица
[21:06:02] <gds> ага, есть такое :)
кстати, я хреновый переводчик, но вот насчёт коанов -- http://gds.livejournal.com/35502.html?mode=reply
[21:07:02] <gds> та же фигня, что и с хаскелем -- та же и с математикой. мозг любого инженера структурируется на отличненько.
[21:09:14] <gds> но дело в том, что могущий уклоняться от пуль обречён жить в стране эльфов. я туда не хочу.
[21:10:11] <604> >разгребаю бинарные форматы
и как можно бинарные файлы читать в строго типизированном языке? я как-то читал двоичный файл из-под делфи - весь измучалсяс приведением к нужному типу
[21:10:39] <604> я хочу в дойче банк :-D
[21:13:54] <gds> бинарные -- так и получается. либо явным указанием типов, либо недавним синтаксическим расширением с названием "bitstring" или типа того. окамл тем и хорош, что можно себе позволить на низкий уровень пойти.
насчёт банков -- лично я туда не хочу. наговорился с их персоналом. не хочу стать таким же. у них не страна эльфов, а нечто совершенно обратное.
[21:14:53] <gds> про персонал банков, конечно, говорил в контексте ит-персонала.
[21:16:07] <604> что с ними не так?
[21:20:47] <gds> более чем в половине случаев -- лажа с мозгом. если брать простые вещи, то они часто не могут согласовать формат обмена платёжками либо игнорируют свои же указания. Из более сложных вещей -- ниасиливают понятия криптографии.
[21:24:49] <gds> я не к тому, что в остальных местах строже требования к мозгу. скорее дело в том, что в банках не предъявляют слишком строгих требований.
учитывая модель работы в среднем-большом банке (не раз рассказывали), там прогресс в плане мозга невозможен практически принципиально.
[21:27:51] <604> у меня на текущей работе ситуация ровно такая же, только платят заметно меньше. И что мне терять?
[21:29:30] <gds> свободное время? зарплату? текущее окружение? больше нечего.
[21:31:29] <604> >Пишите хороший код, а плохой код не пишите.
>Вместо написания плохого кода лучше отдыхайте на природе, в хорошей компании и с жареным мясом.
зачет :)
[21:32:47] <gds> ой я старался. отдыхать. :)
[21:33:14] gds away, протрясти тохес
[21:43:04] <ermine> хнык, пчу если определить A как A of string * string, то потом в матче нельзя матчить как A a
[21:43:09] sceptic вышел(а) из комнаты
[21:58:11] ygrek вошёл(а) в комнату
[22:01:33] <ygrek> потому что это конструктор от двух аргументов?
[22:02:06] <ygrek> можно A of (int * int) - тогда от одного
[22:03:19] <ermine> хм
[22:03:50] <ermine> как-то такая разница не очевидна
[22:03:57] <ermine> ибо звездочка
[22:10:29] <ygrek> но она есть :)
[22:14:08] <gds> разница не очевидна, и это минус original syntax.
[22:14:15] <ygrek> сейчас gds вернётся и расскажет об неправильных пчёлах
[22:14:19] <ygrek> о :)
[22:14:37] <gds> гагага, по статусу чуял! :]
[22:16:11] <gds> кстати вот, в последнее время бывает ковыряю original syntax. Если скобок ставить дофига, всякие begin-end в излишестве, и если привыкнуть к дебильным параметрическим типам, то в целом канает.
[22:16:15] ermine написала пару сотен строк кода, скомпилила и думает, как использовать эти две сотни строк кода
[22:16:27] <ermine> они щас нигде не вызываются
[22:16:44] <ermine> ибо теперь пора вплотную заняться хуками с фильтрами
[22:17:10] <gds> ermine: та же фигня. Потому что сверху надо иттить. А на нереализованные места ставить значение
let undefined _ = raise Exit
[22:18:03] <gds> та же фигня -- в смысле, было такое, поборол. Структуризация задачи -- первый шаг. А "сверху вниз" -- второй. Сначала сделай, чтобы по типам сошлось, а реализацию оформишь при случае.
[22:18:35] ygrek чаще пишет "снизу вверх"
[22:19:04] <ermine> ну да, когда лень заниматься тем, чем очень надо, дописываешь код там где полегче
[22:19:15] <ygrek> потому что реализация понятна - а как собрать всё вместе - всей картины сразу не очевидно.
[22:19:18] <gds> ygrek: та же фигня. Плюсы -- что нужный функционал накапливается.
[22:19:33] <ermine> у меня нет Exit, нафиг
[22:20:26] <gds> ermine: о нет, это не extlib, это значение типа 'a -> 'b, при применении первого аргумента дающее runtime failure.
[22:21:22] <ermine> не
[22:21:38] <ermine> лучше работающий недофункционал, чем вываливающийся недофункционал
[22:22:06] <gds> лучше перед запуском отсеять undefined, чем не реализовать вообще.
[22:22:55] <gds> вообще надо от низкоуровневости избавляться как-то. Уже давно пытаюсь сверху вниз всё решать. Затраты мозга -- кало-ссальные, но, чую, дело того стоит.
Однако архитектуру одной штуковины, хоть и сверху вниз, но всё-таки рисую практически до самого низа.
[22:23:38] <gds> ermine: речь только о том, чтобы нарисовать типы. Не больше.
[22:23:56] <gds> ну и реализовать функции, типы которых нетривиальны.
[22:24:21] ermine вяло смотрит на gds
[22:24:33] <gds> мууу
[22:25:04] <ermine> я вот щас запустила wc -l **/*.ml
[22:25:25] <ermine> 32259 total
[22:25:42] <ermine> чота немного
[22:25:48] <ermine> подозрительно
[22:25:56] <gds> прилично, чтобы понять язык "
[22:26:24] <ermine> гг
[22:26:36] <604> фигасе
[22:26:38] <ermine> правда свежего там 80%
[22:28:43] <gds> эх, а у меня выборка была бы нерепрезентативная -- и кучи проектов дома нет, и куча лежит в старых местах и никому не нужна, и overbld (и вообще чужое) спамить статистику будет. не умею пиписьками меряться :[
[22:29:12] <ermine> 32259 190221 1256803 total
[22:29:23] <ermine> это больше радует чем только -l
[22:30:35] <gds> омфг
[22:32:44] <gds> кстати, у тебя там килобайты матерщины!
[22:33:10] <gds> помню, лексер тренировала, чтобы он в sulci ловил русский язык.
[22:33:51] <ermine> там немного мата, по сути
[22:34:23] <ermine> кстати есть мечта переделать статический матюгальник в динамический (строить и перестраивать в рантайме)
[22:34:24] <gds> ну фигня, просто показалось, что оно (ulex!) должно раздуться реально.
[22:36:12] <ermine> там всего 386 строк кода
[22:36:16] <ermine> мелочь
[22:36:31] <gds> предполагал, считаешь и то, что из него генерилось.
[22:37:03] sevenov вошёл(а) в комнату
[22:37:17] <ermine> неа, это чистые исходники - камлобилд же не терпит антисанитарии
[22:37:35] <ermine> кстати, а вот код в _build похоже таки попал в wc
[22:37:37] <ermine> гг
[22:37:48] <gds> во-во..
[22:38:05] <gds> рантайм -- идея хорошая с практической стороны. На деле -- советую юзать хорошую регексп-библиотеку (pcre ок), или же вручную колбаситься с регекспами.
Вот как раз сегодня, когда ygrek показал код, режущий конец строки (в плагине), я подумал про типизированные регекспы. Конечно, неудобно, но, как обычно, безопасность против удобства.
[22:38:24] <ermine> удалила _build
[22:38:31] <ermine> 31882 188989 1243910 total
[22:39:22] <gds> плюс-минус погрешность, ясно.
[22:39:58] <ermine> gds: ты представляешь себе как строить дерево рекэкспов из кучи регэкспов?
[22:40:21] <ermine> а втупую прогонять слова по регэкспам как-то скучно
[22:40:26] <gds> угу, для того и хочу :) а ты представляешь себе, как вручную писать функции вида cut_endline?
[22:41:09] <gds> лексер, фактически, и есть та самая регексп-машина. только замену наколбасить и ага.
[22:41:42] <ermine> а компилит доооолго
[22:44:36] DiGiTAL_CuRSe вошёл(а) в комнату
[23:16:33] sevenov вышел(а) из комнаты
[23:17:35] sevenov вошёл(а) в комнату
[23:19:21] 604 вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[23:19:23] 604 вошёл(а) в комнату
[23:43:04] <ermine> так
[23:43:14] <ermine> завтра придется кое-что переписать
[23:43:30] <ermine> как всегда
[23:43:53] <ygrek> rwmj жжёт
Of the above, inline assembly is the one I'd really like to see added
to OCaml.
[23:44:33] <gds> ygrek: угу, видел, пепец
[23:44:58] <ermine> кого добавить?
[23:45:01] <ermine> ассемблер?
[23:45:47] <gds> кстати, хотел откомментить, но более по существу, про строки с постоянным физическим адресом. Но понял, что bigarray жыфф, и что compaction можно и отключить для драйвера. Но всё же, всё же.
[23:47:29] <ermine> а там PIC еще не пофиксили
[23:49:27] <gds> опасаюсь, они и не начинали фиксить ничего из перечисленного, гагага
[23:51:06] <ermine> где перечислено?
[23:52:01] ermine решила все же переписать одну функцию, авось толк выйдет - одним фолдом станет меньше
[23:53:12] <ermine> ой! в процессе переписывания увидела баги в существующей
[23:54:30] <gds> в caml-list перечислено было. ну да фигня, по сути. когда в руках напалм, любой окамл кажется ассемблером.
[23:55:48] <gds> фолды убирать -- вариант, но хз. считай, абсракцию снимаешь с кода. Если собираешься его переписывать (оу йесс!), то лучше фолд оставить.
Ну да твоё дело.
Но не понимаю, как можно при "-w A" словить баг от фолда.
[23:57:36] <ermine> фолв vs рекорд в предыдущем фолде, который при каждой итерации меняется
[23:57:56] <ermine> сейчас предыдущий фолд генерил список
[23:58:07] <ermine> потом фолдом разбирала список
[23:58:17] <ermine> ваще непонятно что лучше
[23:59:36] <gds> а, ну да, тут уже не типизация.
лучше -- хз. советую довести до варианта "работает <-> не трожь", а дальше смотреть на то, как вкатываются изменения.
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!