[09:09:20] <geniepro> "xxx: Нашел в фейсбуке своего полного тёзку и написал ему, что у него идиотская фамилия и глупое имя. жду реакции."
))
[09:44:48] <geniepro> "Бывший кандидат в президенты от Республиканской партии США Маккейн заявил в интервью одному американскому телеканалу: «Следующий после Каддафи – Башар Асад, и даже такие места, как Китай и Россия. Там тоже очень неспокойно, и люди хотят свободы»."
[10:25:47] <geniepro> "на небе виктору припомнят
им расчленённую жену
но за эстетику разделки
его простят и пустят в рай"
[12:50:28] <valexey> geniepro: почитал логи ерланговый конфы. и таки да, ты троль :-)
[12:50:39] <valexey> либо в одном значении слова, либо в другом. выбирай что больше нравится
[12:52:57] <geniepro> о_О
[12:52:58] <Жаба> geniepro, чо вылупился?
[12:53:05] <geniepro> в чём именно???
[12:54:14] <geniepro> если им там неприятны нубские вопросы, пусть укажут об этом в парвилах конфы, и создадут отдельную конфу для эрланг-нубов
[12:58:12] <valexey> ну, странно такие вопросы слышать от человека что-то знающего про хаскель
[12:58:50] <valexey> как в хаскеле f = 12+34 может вычисляться каждый раз (когда значение потребуется), так и в ерланге. и там и сям будет тебе функция вызываться.
[12:59:13] <valexey> то есть в хаскеле вообще говоря кошерных константных констант нет
[12:59:23] <geniepro> в хаскеле ленивость, в эрланге энергичность -- значит и вычисления по разному производятся
[12:59:46] <valexey> но в твоем вопросе было важно - производятся ли они?
[12:59:55] <valexey> и да, они в обоих случаях производятся
[12:59:59] <geniepro> в хаскелле 12+34 будет вычисляться только тогда, когда нужно -- в первый раз, когда потребуется
[13:00:11] <valexey> в обоих случаях (хаскель и ерланг) будет оверхед относительно обычной сишной константы
[13:00:21] <valexey> для того чтобы небыло оверхеда в ерланге есть -define
[13:00:38] <valexey> geniepro: а неа. каждый раз в разных ветвях вычислений :-)
[13:00:45] <geniepro> что такое обычная сишная константа? C99 const или #define?
[13:01:11] <valexey> тот конст который в машкоде будет забит константой. циферькой конкретной
[13:01:22] <valexey> что такое const в C99 я точно не знаю
[13:01:29] <valexey> но знаю что такое const в C++
[13:01:38] <valexey> константы могут быть времени компиляции и времени исполнения
[13:01:42] <valexey> речь веду о первых
[13:02:06] <valexey> * вычисляемые во время компиляции и во время исполнения
[13:02:45] <geniepro> сишные дефайны -- зло, если вычисления достаточно сложные -- вместо того, что бы вычислить значение лишь один раз, они будут вычисляться при каждом использовании, в том числе с учётом побочных эффектов приводить к ужасам!
"Взгляд из Зазеркалья" -- там Вирт вполне доходчиво описывал проблемы вычислений по имени, а не по необходимости или по значению
[13:03:10] <valexey> что ты имеешь ввиду?
[13:03:18] <valexey> если я пишу #define A 10
[13:03:24] <valexey> то тут ничего вычисляться не будет
[13:03:38] <valexey> и оверхед будет ровно нуль
[13:03:54] <valexey> более того, если я напишу #define A (10+15+30)
[13:03:59] <valexey> то оверхеда тоже не будет
[13:04:16] <valexey> при оптимизирующем компиляторе :-)
[13:04:31] <valexey> ибо это константа вычисляемая в момент компиляции
[13:04:41] <geniepro> а если написать #define A foo(10) -- может происходить что угодно при каждом использовании A
и вместо одного запуска ракеты по пентагону можно произвести 10 лишних!
[13:04:44] <valexey> с C++ const еще лучше, там это явнее
[13:04:49] <kemiisto> О! geniepro пруфит Виртом! Дожили!!!111
[13:04:51] <kemiisto> :D
[13:05:09] <valexey> geniepro: смотря как будешь A использовать :-)
[13:05:13] <valexey> пример кода покажи
[13:05:24] <geniepro> не, я никогда не отрицал, что Вирт -- гений
просто гений и злодейство -- очень близки!
[13:09:53] <geniepro> да код простейший:

int foo(X)
{
  что-то там откуда-то считываем, так что считанные данные там теряются (из файла с последовательным доступом) или вообще каждый раз они там разные
}

void main(void)
{
   #define A foo(10)
   const   B=foo(10);

   for (int i=0; i<10; i++)
   {
       printf("A=%d\tB=%d%n", A, B);
   }
}

[13:11:03] <valexey> и чем тут плох макрос? :-)
[13:11:22] <valexey> тут не из за макросов, а из за побочных эффектов функции
[13:11:30] <valexey> если функция чистая (foo) то проблем не будет
[13:11:44] <geniepro> а в том, что A будет постоянно разным, а B одинаковым!
[13:12:13] <geniepro> макросы си провоцируют на баги из-за этих вот побочных эффектов
[13:13:23] <geniepro>    #define A foo(10)
   const   B=foo(10);
надо переписать так:
   #define A foo(10)
   const   B = A;
так будет нагляднее видно, что A не будет равно B, как следовало бы ожидать
[13:13:46] <valexey> да нифига подобного :-) то же самое есть и в хаскеле :-) это ж обычная свертка
[13:13:55] <valexey> карирование, если угодно
[13:14:19] <valexey> если ты в хаскеле свернешь функцию с побочным эффектом (IO, да), то получишь то же самое
[13:14:34] <geniepro> короче, я был неприятно удивлён отсутствием нормального способа указывать константы в эрланге
[13:15:06] <valexey> дык их и в хаскеле нет :-) в хаскеле только через #define можно гарантированно получить константы которые не добавляют оверхеда
[13:15:18] <geniepro> в хаскелле хотя бы будет видно, что там какой-то побочный эффект и следует ждать удара в пах в самый неожиданный момент от казалось бы элементарного кода
[13:15:36] <geniepro> в хаскелле нет #define
[13:15:42] <valexey> дык а тут мы постоянно в IO сидим, так что чоткие пацаны всегда на измене :-)
[13:15:57] <valexey> ну, в хаскеле то может и нет, а в ghc есть
[13:16:25] <geniepro> d прс этотпрепроцессор тоже не является частью хаскелла -- это просто препроцессор
[13:16:34] <geniepro> в ghc*
[13:16:50] <valexey> ну и в си это тоже препроцессор. просто препроцессор
[13:16:55] <valexey> в си можно жить и без него
[13:16:59] <valexey> совсем без него
[13:17:43] <geniepro> это сейчас можно, а раньше нельзя было

так почему же эрланг в этом плане на уровне старого си?
[13:18:04] <valexey> именно раньше можно было
[13:18:08] <valexey> да и сейчас можно
[13:18:20] <valexey> вот в С++ без препроцессора уже тяжко
[13:18:42] <geniepro> раньше? когда не было ни const, ни inline? да именно из-за этого и придумали этот препроцессор
[13:18:57] <valexey> да, раньше
[13:19:11] <valexey> у меня вот тут код 1985 года выпуска. на си. без препроцессора
[13:19:18] <valexey> отлично все работает :-)
[13:20:15] <valexey> я надеюсь ты помнишь, что препроцессор это не только и не столько #define? :-)
[13:26:56] <geniepro> в эрланге вроде как нет препроцессора
так что зачем там этот -define() -- вапще непонятно
[13:27:06] <valexey> есть
[13:27:17] <valexey> там еще и -include есть
[13:27:43] <valexey> тебе о препроцессоре в ерланге неоднократно в конфе писали
[13:59:50] <geniepro> млин, хаччу xmonad for windows! ((
[14:01:43] <valexey> у винды же встроенные менеджер окон
[14:02:03] <valexey> если рабочий стол отрывается стандартный довольно легко, то менеджмент окон там вшит
[14:02:07] <valexey> винда маздай ибо
[14:06:34] <kemiisto> можно бы
[15:05:40] <valexey> облин! http://lenta.ru/articles/2011/08/25/schooltab/
[16:43:27] <subj_rs> http://www.yaplakal.com/uploads/post-3-13143552679398.jpg
[16:44:22] <valexey> православно
[21:31:57] <subjrs> http://nnm-club.ru/forum/viewtopic.php?t=347345&spmode=full#seeders
[21:54:47] <valexey> Похоже это что то интересное
[21:55:09] <subjrs> третью серию досматриваю, заинтриговало
[21:55:23] <subjrs> чел просто седня расхваливал, а он любитель сериалов )
[21:55:34] <subjrs> всмысле нормальных сериалов
[21:58:07] <valexey> Элен и ребята? :-)
[22:02:45] <subjrs> я маленький был еще когда этот сериал крутили )
[22:09:48] <kemiisto> http://forum.oberoncore.ru/viewtopic.php?f=85&t=3409
[22:09:54] <kemiisto> :D
[22:10:13] <kemiisto> mongoloid очень толстый!
[22:10:46] <valexey> Ага :-)
[22:11:05] <kemiisto> subjrs: а я Коломбо смотрю. :)
[22:11:12] <kemiisto> Привет!
[22:11:25] <valexey> А я Мартина читаю
[22:11:45] <kemiisto> Рефакторовича?
[22:27:51] <valexey> Джона
[22:28:00] <valexey> Песнь льда и пламени
[22:29:44] <kemiisto> фу, фэнтези!
[22:29:46] <kemiisto> ещ
[22:29:54] <kemiisto> ё и эпическое
[22:29:56] <kemiisto> :D
[22:30:02] <kemiisto> http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%81%D0%BD%D1%8C_%D0%9B%D1%8C%D0%B4%D0%B0_%D0%B8_%D0%9F%D0%BB%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8
[22:30:06] <valexey> Кровь кишки мясо!
[22:30:22] <valexey> Не типичная фентези
[22:30:32] <valexey> Магии по сути там и нет
[22:33:00] <kemiisto> сиравно
[22:33:05] <kemiisto> КАКАШКА!!!111
[22:40:32] <valexey> У msp430 всего 27 инструкций
[22:41:07] <valexey> У виртуальной машины для языка О Свердлова - 23 инструкции
[22:41:38] <valexey> При этом она недоделаная
[22:42:06] <valexey> Если ее доделать, то будет 32 инструкции
[22:43:18] <valexey> То есть msp430 являясь полноценным процессоров для продакшена имеет более простой набор инструкций нежели обероновая игрушечная ВМ