[00:03:32] <kemiisto> я там переименовал Problem.md
[00:03:35] <kemiisto> так
[00:03:49] <kemiisto> я думаю, надо менять задание
[00:04:05] <kemiisto> реализацию к тому моменту книги другую написать нельзя
[00:04:20] <valexey> э?
[00:05:18] <kemiisto> что?
[00:05:42] <kemiisto> ты думаешь там на 50 странице будут описаны механизмы ввода-вывода в ББ? :)
[00:05:45] <kemiisto> нет
[00:05:50] <kemiisto> там есть пара примеров
[00:05:54] <kemiisto> такого типа
[00:06:04] <kemiisto> считываем размерности массива
[00:06:11] <kemiisto> затем элементы
[00:06:40] <kemiisto> **Входные данные**  
Матрица, состоящая из натуральных чисел.
[00:06:46] <kemiisto> Вот тут и поменяем.
[00:07:46] <kemiisto> **Входные данные**  
Матрица, состоящая из натуральных чисел, количество строк и столбцов в ней, размер квадрата.
[00:07:51] <kemiisto> типа того
[00:07:56] <kemiisto> ?
[00:09:02] <kemiisto> valexey: ?
[00:09:31] <valexey> ок. меняй задание
[00:10:47] <kemiisto> ща :)
[00:16:21] <kemiisto> valexey: done!
[00:17:19] <valexey> kemiisto: на гитхабе ничего не изменилось
[00:17:28] <valexey> ты точно сделал push?
[00:17:35] <valexey> https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/tree/master/Procedures/01
[00:21:41] <kemiisto> valexey: да, да
[00:21:51] <kemiisto> оно тупит ещё и на сервер-сайд
[00:22:00] <kemiisto> говно ваш git, господа
[00:22:02] <valexey> гм. у меня все мгновенно
[00:22:13] <kemiisto> Торвальдс так ничего путного и не напишет
[00:22:15] <kemiisto> :D
[00:22:19] <kemiisto> ТОЛСТОТА!
[00:24:37] <valexey> ну вот я запушил, и мгновенно появилось все
[00:24:59] <valexey> https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/tree/master/Procedures/01
[00:25:42] <kemiisto> у меня тоже в тот раз почти сразу появилось
[00:25:49] <kemiisto> может ты страницу не обновил?
[00:26:14] <kemiisto> https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/commits/master/Procedures/01/README.md
[00:26:24] <kemiisto> в истории 12 минут назад
[00:26:54] <kemiisto> 22:14 по местному
[00:26:59] <kemiisto> усё чётко
[00:27:41] <kemiisto> во-во!
[00:27:45] <kemiisto> молодец!
[00:27:54] <kemiisto> делай текст-инпуты
[00:28:04] <kemiisto> я потом из Фортрана заюзаю
[00:28:05] <kemiisto> :D
[00:28:24] <valexey> да, но там как было у тебя
[00:28:27] <valexey> Тест
Входные данные:
1 1 0 0
1 1 0 0
0 0 1 1
0 0 1 1
[00:28:30] <valexey> так и осталось же
[00:28:49] <kemiisto> а
[00:28:50] <kemiisto> !
[00:28:54] <kemiisto> не всё поменял!
[00:28:55] <kemiisto> :D
[00:29:03] <valexey> дык :-)
[00:32:14] <kemiisto> чай
[00:32:17] <kemiisto> !
[00:32:19] <kemiisto> :)
[00:34:46] <kemiisto> valexey: ща будет
[00:40:27] <kemiisto> пойду ошибку править
[00:40:57] <kemiisto> а нет, стой!
[00:41:13] <kemiisto> у тебя пример неправильный!!!
[00:41:14] <kemiisto> 111
[00:41:18] <kemiisto> 3
[00:41:19] <kemiisto> 5
[00:41:20] <kemiisto> 2
[00:41:24] <kemiisto> должно быть!
[00:42:48] <kemiisto> valexey: ты будешь толстить
[00:42:53] <kemiisto> но я таки скажу тебя
[00:42:56] <kemiisto> помнишь
[00:42:58] <kemiisto> я говорил
[00:43:07] <valexey> ?
[00:43:12] <kemiisto> что этот Utf-8 конвертор
[00:43:15] <valexey> почему ?
[00:43:19] <kemiisto> добавляет пустые строки
[00:43:22] <kemiisto> так вот
[00:43:23] <valexey> угу
[00:43:27] <kemiisto> он таки это делает
[00:43:33] <valexey> но у меня он перестал добавлять. вроде бы
[00:43:42] <kemiisto> и только если признак окончания строки ВИНДОВЫЙ
[00:43:46] <kemiisto> ВИНДОВЫЙ
[00:43:51] <kemiisto> ББ как и не под винду
[00:43:52] <kemiisto> :D
[00:43:56] <valexey> гы
[00:43:59] <valexey> ну да
[00:44:07] <kemiisto> меняешь на юниксовый
[00:44:10] <kemiisto> и ok
[00:44:11] <valexey> он видимо \r и \n каждый по отдельности за перенос строки считает
[00:44:32] <valexey> так, а почему мой пример не правильный?
[00:44:39] <valexey> 5
3
2

0 0 0 1 1
1 1 1 1 1
0 1 0 1 1

[00:44:43] <valexey> вроде, все кошерно же
[00:44:45] <kemiisto> сначало число строк
[00:44:46] <kemiisto> !
[00:44:47] <kemiisto> 3
[00:44:50] <kemiisto> потом
[00:44:51] <kemiisto> 5
[00:44:53] <kemiisto> столбцов
[00:44:59] <valexey> с фига ли?
[00:45:06] <kemiisto> да нет
[00:45:09] <kemiisto> я не настаиваю
[00:45:17] <kemiisto> просто я загнал не подумав
[00:45:18] <valexey> когда ты пишешь 640x480 - первое у тебя высота? :-)
[00:45:27] <kemiisto> и решил, что у меня баг в проге
[00:45:28] <kemiisto> :D
[00:45:33] <valexey> гы
[00:45:43] <kemiisto> valexey: ну, когда массивы
[00:45:45] <kemiisto> я привык так
[00:45:51] <kemiisto> строки x столбцы
[00:46:35] <valexey> таки сишный кот на гитхаба кошерней смотрится: https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/blob/master/Procedures/01/C89/submatrix.c
[00:46:42] <valexey> (осталось реализовать алгоритм )
[00:47:33] <kemiisto> valexey: подсветка?
[00:47:42] <kemiisto> там, наверное, можно добавить...
[00:47:51] <kemiisto> излишество же!
[00:47:55] <kemiisto> НИНУЖНА!
[00:47:57] <kemiisto> :D
[00:49:30] <valexey> :-)
[00:50:41] <valexey> чорт. чую что мой вариант будет антиабирон
[00:50:48] <valexey> там даже фигурных скобочек нет :-)
[00:50:53] <valexey> в ифах да циклах
[00:54:28] <kemiisto> exit...
[00:54:31] <kemiisto> :D
[00:55:10] <valexey> тебя return больше устроил бы? :-)
[00:55:21] <kemiisto>    if (3 != scanf("%d %d %d", &m, &n, &l))
       fprintf(stderr, "2d matrix dimension & square size expected\n"),
       exit(1);
[00:55:26] <valexey> о! можно goto же!
[00:55:32] <kemiisto> но тут же нужны {}
[00:55:33] <kemiisto> !
[00:55:38] <valexey> нет, не нужны
[00:55:51] <valexey> :-D
[00:55:52] <kemiisto> особенность exit?
[00:55:59] <valexey> нет
[00:56:15] <kemiisto> ,?
[00:56:19] <valexey> да
[00:56:21] <kemiisto> оператор запятая
[00:56:23] <kemiisto> да, да
[00:56:42] <kemiisto> без goto не толсто
[00:56:44] <kemiisto> ;)
[00:56:56] <valexey> ну, уже запятой можно начинать троллить :-)
[00:57:05] <valexey> можно и питонистов
[00:57:08] <valexey> и сишников :-)
[01:01:08] <kemiisto> я спать
[01:01:13] <kemiisto> бб
[09:52:20] <geniepro> http://ocsigen.org/macaque/dev/manual/
то у них верблюд, то теперь макака ))
[09:59:36] <geniepro> http://i.imgur.com/D4QEO.png -- так хаскелл -- это датский? о_О
[11:56:14] <valexey> kemiisto: я там понаписал сишных решений
[11:56:31] <valexey> Недоделана только задача про матрицы
[12:05:13] <kemiisto> valexey: вижу-вижу
[12:06:44] <kemiisto> /me испугал месседж в последнем коммите "optimization [valexey]"
[12:06:47] <kemiisto> :D
[12:08:01] <valexey> :-)
[12:08:23] <kemiisto> там где есть массивы я сёравно Фортраном затроллю
[12:08:25] <kemiisto> :D
[12:08:42] <valexey> На сях кот получается короче чем на кп
[12:09:03] <valexey> kemiisto:ололо! А я затролю ФОРТРАН D
[12:10:55] <valexey> geniepro:
[12:11:25] <kemiisto> valexey: а нечем!!!!1111
[12:11:30] <kemiisto> LISP'ом можно
[12:11:33] <kemiisto> но не везде
[12:11:36] <kemiisto> на массивах
[12:11:47] <valexey> А потом придет geniepro и всех затроллит хаскелем :-)
[12:11:49] <kemiisto> LISP троллится FORTRAN'ом на раз-два!
[12:11:56] <kemiisto> valexey: гы
[12:12:01] <kemiisto> да, пускай
[12:12:11] <kemiisto> там есть задачки с 3-мерными массивами
[12:12:15] <kemiisto> с мутабельностью
[12:12:23] <kemiisto> и возьмём размерность
[12:12:24] <valexey> Злой ты
[12:12:29] <kemiisto> чтоб ему поудобнее было
[12:12:36] <kemiisto> побольше
[12:12:42] <kemiisto> трилион в кубе
[12:12:45] <kemiisto> например
[12:12:47] <kemiisto> :D
[12:12:53] <valexey> Но в хаскеле есть мутабельные многомерные массивы :-)
[12:13:22] <kemiisto> valexey: чуя синтасис там доставляющий
[12:13:23] <kemiisto> :D
[12:13:52] <valexey> Кстати, задача может быть такова, что лучше использовать ленивые вычисления
[12:14:12] <valexey> Не, синтаксис нормальный, но вот типы...
[12:15:23] <valexey> geniepro: вливайся :-)
[12:31:22] <geniepro> а чо за задачу вы решаете там?
[12:32:07] <valexey> Мы решаем задачки к книжке одной
[12:32:27] <valexey> Задачки простые, для начинающих, но тем не менее.
[12:32:39] <geniepro> если хаскелл не успевает за сями -- включить сишный код в хаскельную прогу и дело с концом ))) бугага
[12:32:58] <valexey> Будет аналог sicp что в топике :-)
[12:33:25] <geniepro> sicp рулез, тока я там до сих пор первую главу ниасилил ))
[12:34:20] <valexey> Задачки к книжке потопахина современное программирование с нуля
[12:34:41] <geniepro> а у мя нету этой книшки ((
[12:35:18] <valexey> И у меня нет
[12:35:39] <valexey> Но описалово задачек появляется тут https://github.com/kemiisto/ModernProgrammingFromTheGroundUp
[12:36:04] <valexey> Равно как и решения на разных языках тоже там же собираем
[12:36:33] <valexey> kemiisto: новых задачек не подкинишь? :-)
[12:40:51] <geniepro> а зачем всё это? о_О
[12:41:23] <valexey> А зачем решебник sicp на разных языках?
[12:42:02] <valexey> Для того, что бы у читателя не случился ББ головного мозга
[12:42:10] <valexey> Ибо книжка на КП
[12:43:24] <valexey> Заодно и языки сравним :-)
[12:43:55] <valexey> Ну и хорошая разминка с утра
[12:45:15] <geniepro> программирование из хард!
http://www.vampirizm.ru/video/film/47
[12:45:23] <valexey> kemiisto: https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/graphs/impact
[12:45:31] <valexey> У тебя толще!
[12:50:31] <geniepro> вот откуда истоки операционки План 9:
http://ru.wikipedia.org/wiki/План_9_из_открытого_космоса_(фильм)
[12:50:53] <valexey> :-)
[12:51:27] <geniepro> был снят на деньги баптистской церкви ))
[12:51:49] <geniepro> "Съёмки фильма проходили в период с 11 августа 1956 по 5 сентября 1956 года. Ввиду отсутствия своих денег на съёмки фильма, их выделила Южная Баптистская церковь, в которой съёмочной группе пришлось пройти обряд крещения, а в самом фильме, под условием выделения денег, снялся один из членов церкви.[3] При съёмках фильма кабину пилотов снимали следующим образом: пилоты сидели на дачных стульях, а позади них висела занавесь от душа. Летающие же тарелки над моделью Голливуда представляют собой дешёвые игрушечные модели, купленные в детском магазине."
[12:56:32] <geniepro> как там у вас на фирме терпят такой кодинг-стайл?

   if (1!=scanf("%d",&n))
       fprintf(stderr, "N must be integer\n"),
       exit(1);

[12:57:12] <valexey> Ну, питонистов вроде еще не расстреляли, а что?
[12:57:53] <geniepro> у питонистов это входит в типовое использование языка, а в сях это ненормально!!!111
[12:58:06] <valexey> Почему?
[12:58:22] <valexey> В данном случае скобочки просто не нужны.
[12:59:39] <valexey> Кстати, так и читается легче
[13:00:07] <valexey> Вон сестре показал - она про скобочки и не вспомнила. Ибо и так все ясно.
[13:00:58] <kemiisto> valexey: насчёт нотика с нормальным разрешением
[13:01:06] <kemiisto> таки только Lenovo
[13:01:12] <kemiisto> из альтернативных
[13:01:12] <geniepro> это всё равно как на хаскеле писать в стиле:

do { h <- ... get addr of hash procedure ...
      -- get addr of hash procedure
  ; let hash = hashMethod h
  ; r1 <- hash 34
  ; r2 <- hash 39
 ...
}

это кусок из хаскельной классики млять
[13:01:14] <valexey> Черт
[13:01:26] <kemiisto> нет, есть, конечно, ещё VAIO последние
[13:01:36] <kemiisto> но они дороже АнальнойКары
[13:01:39] <kemiisto> :D
[13:02:07] <valexey> Под анальной карой ты подразумеваешь макбук?
[13:02:10] <kemiisto> короче
[13:02:11] <kemiisto> MC965RS/A
[13:02:15] <kemiisto> вот, блеять!
[13:02:21] <kemiisto> http://www.re-store.ru/apple-mac/macbook-air-mid-2011/13.3inch-4gb-128gb/
[13:02:28] <kemiisto> 55990
[13:02:34] <kemiisto> :'(
[13:02:39] <geniepro> у сишников же есть стандарты, в соотвествии с которыми они ожидают видеть код.
а подобное нарушение стандартов -- это удар под дых!!!
[13:02:44] <kemiisto> цены у Яблока демотивируют
[13:02:50] <valexey> geniepro:мне все равно как принято, как все привыкли, я пишу так, как читабельней.
[13:03:03] <kemiisto> geniepro: я тоже охуел :)
[13:03:14] <kemiisto> как таких земля носит!!!111
[13:03:15] <kemiisto> :D
[13:03:39] <geniepro> у вас там на работе нету что ли требований к соблюдению стандартов? о_О
тоже шараш-контора )))
[13:03:56] <valexey> geniepro: у сишников стандартЫ, следовательно нет стандарта :-)
[13:04:11] <geniepro> есть общая часть в этих стандартах
[13:04:17] <kemiisto> valexey: там есть кредит :D
[13:04:19] <kemiisto> http://www.re-store.ru/promo/financing/?utm_source=Internal&utm_medium=Banner&utm_campaign=Financing+Cross&utm_content=Product
[13:04:24] <valexey> geniepro: зависит от проекта :-)
[13:04:41] <geniepro> и вообще есть всего лишь три таких стандарта, один из которых (K&R) давно уже забыт
[13:04:46] <valexey> geniepro: и где там сказано про скобочки?
[13:05:13] <geniepro> вот именно, раз такой стиль кодирования там не разрешён, значит запрещён
[13:05:42] <valexey> Он не запрещен, следовательно разрешен
[13:06:35] <geniepro> первая задачка меня вводит в шок -- такие задачки ещё существуют? о_О
[13:07:53] <kemiisto> geniepro: это учебник же
[13:07:59] <kemiisto> для начинающих с нуля
[13:09:31] <valexey> kemiisto: я же говорил, что таким стилем отлично можно многих троллить :-)
[13:10:36] <geniepro> ага, работодателя, например
[13:18:05] <valexey> Да не, ему пофиг
[13:18:14] <valexey> Главное что бы работало
[13:23:37] <valexey> geniepro: а другие возражения кроме того как "так не принято" будут? :-)
[13:27:34] <geniepro> да! так никрасиво в сях!!!
[13:28:18] <geniepro> си не способствует такому стилю, слишком велика вероятность ашыпок из-за оператора запятая
[13:30:04] <valexey> Что за ошибки?
[13:31:20] <geniepro> запендюрьте туда куда-нить:

module Ex_1 where

main = do
   n <- readLn :: IO Integer
   let xs = [ (i, n `div` i)
            | i <- [2..iSqrt n]
            , n `mod` i == 0
            ]
   mapM_ (\(d1, d2) -> putStrLn $ unwords [show d1, "и", show d2]) xs
 where
   iSqrt x = truncate $ sqrt $ fromInteger x

Ex_1> :main
20
2 и 10
4 и 5

[13:32:50] <geniepro> а лучше вот:

module Ex_1 where

main = do
   n <- readLn :: IO Integer
   let xs = [ (show i ++ " и " ++ show(n `div` i))
            | i <- [2..iSqrt n]
            , n `mod` i == 0
            ]
   mapM_ putStrLn xs
 where
   iSqrt x = truncate $ sqrt $ fromInteger x
[13:33:36] <geniepro> там лишние скобки зачем-то я сделал, лучше вот: ))

module Ex_1 where

main = do
   n <- readLn :: IO Integer
   let xs = [ show i ++ " и " ++ show(n `div` i)
            | i <- [2..iSqrt n]
            , n `mod` i == 0
            ]
   mapM_ putStrLn xs
 where
   iSqrt x = truncate $ sqrt $ fromInteger x
[13:34:41] <geniepro> Ex_1> :main
100
2 и 50
4 и 25
5 и 20
10 и 10

это намана, что выводит "10 и 10" ???
[13:36:05] <geniepro> в проге на КП делается:
   In.Open;
   In.Int(n);
а де закрывание???
де строка
   In.Close;
???
[13:36:54] <geniepro> ну чооо? де моя оценка??? )))
[13:37:19] <geniepro> де все??? ))))
[13:38:25] <geniepro>    for (d=n-1; d>1 && d >= n/d; --d) if (!(n%d)) printf("= %d*%d\n", d, n/d);

деление два раза идёт!!! дорогостоящая операция!!! )))
[13:40:39] <valexey> geniepro: нормвльно
[13:41:07] <valexey> geniepro: деление можно кэшировать
[13:41:28] <valexey> Но тут это будет преждевременная оптимизация
[13:42:37] <valexey> geniepro: а у тебя вообще работа с кучей
[13:42:42] <valexey> Что еще дороже
[13:44:07] <geniepro> где куча???
[13:44:14] <geniepro> нету там кучи!!!
[13:44:18] <valexey> Список
[13:44:25] <geniepro> всё в кеш первого уровня влезло!!!
[13:44:48] <geniepro> лентяйство рулит!!!
[13:45:17] <geniepro> не ну в регистрах оно конечно быстрее, но это преждевременная оптимизация )))
[13:45:25] <valexey> Да, но куча никуда не делась
[13:45:46] <valexey> Хоть и кэш
[13:49:58] <geniepro> не очень оптимально, но сойдёт пока: ))

module Ex_2 where

main = do
   n <- readLn :: IO Integer
   putStrLn $ if perfect n then "Да" else "Нет"
 where
   perfect x = x == sum [d | d <- [1..x-1], x `mod` d == 0 ]

[13:50:41] <valexey> О! Тернарный оператор!
[13:52:33] <geniepro> я нипанимаю:
   for (d=2; d<n && d<=n/d; d++)
       if (!(n%d)) res-=d+n/d;
зачем надо "d<n &&" ???
ведь если d или равно n/d, то оно заведомо меньше чем d
[13:53:18] <valexey> Рудимент
[13:53:37] <geniepro> писец чо я написал )))
[13:53:44] <geniepro> но кому надо, тот понял ))
[13:54:28] <geniepro> походу по строкам я пока выигрываю )))
[13:55:56] <geniepro> решение на КП вапще писец длинное ))
[13:58:22] <geniepro> интересна история решения на сях:

added C89 solution for perfect numbers
fixed -- ашипка что ле была? эх, си, си...
optimization -- ну чо тут оптимизировать-то? чай си не хацкель, в оптимизациях не нуждается )))
[14:06:17] <valexey> geniepro: я не правильно понял задание. ошибок приводящих к падению программы конечно же не было
[14:07:07] <valexey> kemiisto: по моему. пора заводить на форуме темку про задачки эти :-)
[14:08:14] <valexey> либо добавить geniepro в коллабораторы, чтобы он свои решения туда пушил
[14:08:21] <valexey> Пуш-Пуш-Пуш!
[14:08:32] <kemiisto> geniepro: етсь акк на гитхабе?
[14:09:00] <valexey> кстати! Маковый клиент для гитхаба надо попробовать же!
[14:09:02] <geniepro> я не умею пользоваться гитхабом (( пытался, ниасилил ((
[14:09:11] <valexey> o_O
[14:09:17] <valexey> даже я осилил
[14:09:41] <valexey> /me вчера первый раз работал с git-репозиторием
[14:10:32] <kemiisto> я тоже
[14:10:34] <kemiisto> :)
[14:11:44] <valexey> kemiisto: признайся, ты ЭТО делал из консоли, или же гуй нашел?
[14:11:47] <shaggie> а задачка про матрицы имеет другое решение кроме брутфорса?
[14:12:05] <kemiisto> valexey: КОНСОЛЬ!!!
[14:12:07] <valexey> да
[14:12:12] <valexey> kemiisto: аналогично!
[14:12:15] <kemiisto> я вчера и под виндой делал
[14:12:18] <kemiisto> там есть
[14:12:26] <valexey> гуйни они какие-то сложные все. нипанятные
[14:12:27] <kemiisto> на MSYS  основанный дистр git'а
[14:12:38] <kemiisto> valexey: да
[14:12:46] <valexey> а тут git add, git rm, git commit, git push Push PUSH!!!1
[14:13:08] <geniepro> там надо какой-то ключ что ле (((
[14:13:32] <valexey> надо зарегаццо чтобы иметь возможность комитта
[14:14:05] <geniepro> там чота сложно, для регистрации какие-то юниксовые тулзы надо иметь -- ssh или что-то такое
[14:14:15] <geniepro> ну их
[14:14:32] <shaggie> geniepro: git commit -m "comment" && git push
[14:14:33] <valexey> вот видео про разработку посредством git: http://www.youtube.com/watch?v=L1A-71uPztM
[14:14:39] <valexey> :-D
[14:14:41] <shaggie> остальное ненужно
[14:14:58] <valexey> shaggie: а как же add? как без этого жить?
[14:15:05] <valexey> а после add надо же сразу rm!
[14:15:35] <geniepro> короче ещё вот:

module Ex_3 where

main = do
   str <- getLine
   print $ sum $ filter (>0) $ map (read :: String -> Integer) $ words str

ща пасмарю, чо там у конкурентоф ))
[14:15:37] <shaggie> /me думает про матрицы и немножко рассеян
[14:16:27] <geniepro> у мя гит на компе есть, я даже пытался им делать репозитории рабочих проектов, но надоело потом )))
[14:18:42] <kemiisto> valexey: твои сишечные инпуты ни куда никодны!!!111
[14:18:43] <kemiisto> :D
[14:18:53] <kemiisto> Fortran же совсем другой
[14:19:01] <kemiisto> альтернативный
[14:19:03] <kemiisto> :)
[14:19:19] <kemiisto> ввод-вывод, например, там иначе огранизован
[14:20:36] <kemiisto> вот, например,
[14:20:37] <kemiisto>  DO WHILE (iostatus == 0)
   READ (unit=input_unit, fmt='(i6)', iostat=iostatus), n
   IF (iostatus == 0) sum = sum + n
 END DO
[14:20:47] <kemiisto> по-Дейкстре, заметь!!!111
[14:20:48] <kemiisto> :D
[14:20:57] <kemiisto> https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/blob/master/Conditional/03/test_input.txt
[14:21:06] <kemiisto> мне нужны числа в столбик!
[14:21:13] <kemiisto> В СТОЛБИК, БЛЕАТЬ!
[14:21:18] <kemiisto> а не в строчку!
[14:21:25] <kemiisto> В СТОЛБИК МНЕ ЗАПИЛИ!
[14:21:27] <kemiisto> :D
[14:21:46] <geniepro> валексей! нипашет у мя такое решение:
#include <stdio.h>

int main()
{
   int sum=0, n;
   while (scanf("%d",&n)) sum += n>0 ? n : 0;
   printf("%d\n", sum);
   return 0;
}
[14:22:01] <kemiisto> гы
[14:22:05] <kemiisto> багрепорт!
[14:22:06] <kemiisto> :D
[14:22:30] <geniepro> оно там бесконечно ждёт инпута, пока не введу какую-нить херь типа буквы
[14:22:52] <kemiisto> geniepro: это ожидаемое поведение же!
[14:22:54] <kemiisto> что ты!
[14:22:57] <kemiisto> бог с тобой!
[14:22:58] <geniepro> о_О
[14:23:18] <kemiisto> ой, совсем человек заФПшился
[14:23:21] <geniepro> "Вычислить сумму всех положительных чисел из входного потока данных."
как определить, что входной поток закончился???
[14:23:26] <kemiisto> stream i/o блеать!
[14:23:34] <kemiisto> geniepro: ну как ни число
[14:23:39] <kemiisto> так и закончился же!
[14:23:47] <geniepro> ну писец вапще ))
[14:23:50] <kemiisto> в духе К.О.
[14:24:05] <kemiisto> geniepro: а шо, ваши хаскелли так не умеют?
[14:24:06] <kemiisto> :D
[14:24:36] <kemiisto> valexey: Я НАСТАИВАЮ НА АЛЬТЕРНАТИВНОМ ВВОДЕ!!!111
[14:24:38] <kemiisto> :D
[14:25:40] <geniepro> четвёртая задача неотличима от третей (( скушна

module Ex_4 where

main = do
   str <- getLine
   print $ sum $ filter even $ map (read :: String -> Integer) $ words str

[14:26:05] <geniepro> даже по количеству символов совпадает )))
[14:27:38] <geniepro> Conditional/05/README.md

Задание
Дано три числа, определить, являются ли они сторонами прямоугольного треугольника.

Входные данные
Три целых числа.

Выходные данные
Сумма чётных чисел.

Пояснение

Тест
Входные данные:
1 2 3
Выходные данные:
Нет.
Входные данные:
3 4 5
Выходные данные:
Да.
Входные данные:
5 3 4
Выходные данные:
Да.

нипонял o_O чоза куйня:

Выходные данные
Сумма чётных чисел.
[14:27:59] <kemiisto> geniepro: артефакт
[14:28:01] <kemiisto> :D
[14:28:12] <geniepro> опять артефакт-рудимент? )))
[14:28:14] <kemiisto> ctrl-c ctrl-v же
[14:28:16] <kemiisto> :)
[14:29:15] <shaggie> вы даёте
[14:29:46] <shaggie> репозиторию суток нет, а уже легаси повсюду
[14:30:03] <kemiisto> valexey: вот что
[14:30:08] <kemiisto> я думаю будет лучше
[14:30:29] <kemiisto> переметить твои .txt тестовые инпуты в папки C89
[14:30:38] <kemiisto> бо у всех ЯП разные механизмы
[14:30:46] <kemiisto> где-то проще так читать
[14:30:50] <kemiisto> где-то так
[14:31:02] <kemiisto> а подстраиваться да ещё и под сишечку ленно
[14:31:06] <kemiisto> и неинтересно
[14:31:07] <kemiisto> :D
[14:34:40] <geniepro> module Ex_4 where

import Data.List

main = do
   str <- getLine
   let [x, y, z] = take 3 $ map (read :: String -> Integer) $ words str
   putStrLn $ if triangle x y z then "Да" else "Нет"
 where
   triangle x y z = x'*x' + y'*y' == z'*z'
     where
       [x', y', z'] = sort [x, y, z]

[14:34:50] <geniepro> упс!

module Ex_5 where

import Data.List

main = do
   str <- getLine
   let [x, y, z] = take 3 $ map (read :: String -> Integer) $ words str
   putStrLn $ if triangle x y z then "Да" else "Нет"
 where
   triangle x y z = x'*x' + y'*y' == z'*z'
     where
       [x', y', z'] = sort [x, y, z]


[14:38:14] <geniepro> да уж, кемиисто накопипастил в пятой задачке )))
   IF a*a + b*b = c*c THEN
     StdLog.String("Да.");
   ELSIF a*a + c*c = b*b THEN
     StdLog.String("Да.");
   ELSIF b*b + c*c = a*a THEN
     StdLog.String("Да.");
   ELSE
     StdLog.String("Нет.");
   END;
 END Do;
[14:39:50] <geniepro> окончательный вариант:

module Ex_5 where

import Data.List

main = do
   str <- getLine
   let [x,  y,  z ] = take 3 $ map (read :: String -> Integer) $ words str
       [x', y', z'] = sort [x, y, z]
   putStrLn $ if x'*x' + y'*y' == z'*z' then "Да" else "Нет"


[14:40:58] <geniepro> теперь точно окончательный:

module Ex_5 where

import Data.List

main = do
   str <- getLine
   let [x, y, z ] = sort $ take 3 $ map (read :: String -> Integer) $ words str
   putStrLn $ if x*x + y*y == z*z then "Да" else "Нет"
[14:41:03] <valexey> geniepro: специально для вопрошающих для каждой задачки есть файл с исходными данных
[14:41:05] <valexey> данными
[14:41:25] <geniepro> там из файла читать надо или же таки из кансоли???
[14:41:44] <geniepro> из кансоли ввод не канчается в сишном варианте
[14:42:38] <geniepro> так чо, тема на форуме будет или как?
[14:42:51] <valexey> geniepro: ./a.out < test_input.txt
[14:42:53] <valexey> и все
[14:43:05] <valexey> перенаправление ввода кто-то разве отменял?
[14:43:29] <valexey> алсо можно cat test_input.txt | ./a.out
[14:43:35] <geniepro> а если в какой-то операционке нету этого перенаправления? о_О
[14:43:43] <valexey> это в какой это?
[14:43:46] <valexey> в винде есть
[14:43:48] <geniepro> ну мало ли )))
[14:43:51] <valexey> в юниксах тем более есть
[14:44:11] <geniepro> в амига ос есть? ))
[14:44:15] <valexey> да
[14:44:21] <valexey> в BeOS тоже есть
[14:44:25] <valexey> в QNX есть
[14:44:33] <valexey> даже в dos'e есть :-)
[14:44:53] <geniepro> а в сп/м? ))
[14:46:58] <geniepro> "Задание
Выяснить, есть ли в заданной матрице размерами M x N квадрат со стороной L, состоящий из одних единиц. В дополнительной процедуре реализовать проверку совпадения квадрата с частью матрицы в текущей точке."

о_О тут думать же надо (((
[14:49:15] <kemiisto> https://github.com/kemiisto/ModernProgrammingFromTheGroundUp/blob/master/Conditional/03/Fortran/main.f90
[14:49:25] <kemiisto> Фортран раскрашенный!!!111
[14:49:28] <kemiisto> ;)
[14:49:36] <kemiisto> geniepro: описание поправил
[14:49:43] <kemiisto> УЧИ ГИТ!!!111
[14:49:58] <geniepro> ххх: Сегодня чуть с такой классной девушкой не познакомился
ууу: Почему "чуть"?
ххх: Я решил в последний момент, что псих-диспансер не самое лучшее место, где можно встретить девушку своей мечты.
[14:50:00] <geniepro> ))
[14:50:03] <kemiisto> valexey: як тебе фортран? тока на капс не плюйся! :D
[14:50:27] <geniepro> фууу капс ))
[14:50:47] <kemiisto> geniepro: сишноков протроллить - самое оно!
[14:50:49] <kemiisto> ЖЕ!
[14:51:24] <geniepro> а сишники-то тут при чём? этот фортран неотличим от бейсика )
[14:51:56] <valexey> geniepro: наоборот
[14:52:06] <valexey> бейсик был писан по образу и подобию фортрана
[14:52:11] <valexey> как его сильно упрощенная версия
[14:52:19] <geniepro> это мелочи )
[14:52:55] <valexey> kemiisto: гламур!
[14:53:00] <valexey> а зачем там капс, кстати?
[14:54:32] <kemiisto> valexey: АБИРОН ЖЕ!
[14:54:34] <kemiisto> :D
[14:54:46] <valexey> фе
[14:55:37] <kemiisto> valexey: так то там case-insensitive
[14:55:44] <kemiisto> а в былые годы
[14:55:50] <kemiisto> там был ТОЛЬКО КАПС!!!111
[14:55:52] <valexey> я знаю, потому и спрашиваю :-)
[14:55:56] <kemiisto> ЯЗЫК БЛОНДИНОК!
[14:55:57] <kemiisto> :D
[14:56:21] <valexey> та раньше все такие были
[14:56:41] <kemiisto> все звучит забавно :D
[14:56:49] <kemiisto> бо, когда Фортран был такой
[14:56:59] <kemiisto> он, кстати, был ФОРТРАН в те годы
[14:57:10] <kemiisto> кроме него и ЛИСПА особо ничего и не было
[14:57:13] <kemiisto> :)
[14:57:35] <kemiisto> а ЛИСП сразу был нинужен?
[14:57:42] <kemiisto> или на нём что-то писали?
[14:58:06] <geniepro> как??? был алгол-60!!! был кобол!!!111
[14:58:21] <valexey> был B!
[14:58:34] <geniepro> на лиспе писали программы, которые рвали по скорости работы фортрановские )))
[14:58:43] <geniepro> B не было тогда ещё
[14:58:53] <valexey> про какое тогда мы говорим?
[14:59:07] <geniepro> про время, когда был алгол-60 ))
[14:59:53] <valexey> это время до сих пор длится :-)
[14:59:57] <valexey> уточни
[15:00:07] <kemiisto> :D
[15:00:22] <kemiisto> ну, ФОРТРНА в 1957 появился
[15:00:40] <geniepro> разве не в 54?
[15:00:54] <kemiisto> на рынке в 57
[15:01:02] <kemiisto> а в 54 я хз
[15:01:07] <geniepro> Фортра́н (Fortran) — первый язык программирования высокого уровня, имеющий транслятор. Создан в период с 1954 по 1957 год
[15:01:16] <kemiisto> может в недрах МежДелМаша и был
[15:01:19] <kemiisto> а ну вот да
[15:01:32] <kemiisto> но на рынке в 57 появился
[15:01:40] <kemiisto> а ЛИСП так и не появился
[15:01:42] <kemiisto> :D
[15:01:46] <kemiisto> ТОЛСТОТА!
[15:02:14] <kemiisto> ЛИСП Appeared in 1958
[15:02:24] <kemiisto> по утверждению Педивикии
[15:02:27] <valexey> ололо :-)
[15:02:32] <kemiisto> а ФОРТРАН Appeared in 1957
[15:02:38] <valexey> лисп он да. он ведь не функциональный :-)
[15:02:46] <kemiisto> МОЖНО ДО СМЕРТИ ЗАТРОЛЛИТЬ ЛИСПЕРОВ!
[15:02:48] <valexey> точнее функциональщина в нем появилась где-то в 80-х годах
[15:02:54] <kemiisto> У МЕНЯ ЯЗЫК СТАРШЕ!!!111
[15:03:02] <geniepro> B
Appeared in 1969
[15:03:08] <valexey> kemiisto: и нужнее, да :-)
[15:03:30] <kemiisto> Lisp (or LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older (by one year).
[15:03:31] <geniepro> scheme -- 1975 год!!!
[15:03:32] <valexey> http://en.wikipedia.org/wiki/ALGOL_58
[15:03:33] <kemiisto> ВОТ!
[15:03:33] <valexey> :-)
[15:04:00] <valexey> The meeting took place from May 27 to June 2, 1958, at ETH Zurich <http://en.wikipedia.org/wiki/ETH_Zurich>
[15:04:13] <kemiisto> так, а у ЛИСП стандарта нет?
[15:04:17] <kemiisto> ФУ ЖЕ!
[15:04:18] <kemiisto> :D
[15:04:31] <geniepro> есть же! Common Lisp и Scheme!!!
[15:04:35] <valexey> kemiisto:  есть
[15:04:37] <kemiisto> интересно
[15:04:45] <valexey> лисп это коммон лисп
[15:04:50] <valexey> а схему в жопу :-)
[15:04:50] <kemiisto> что будет в стандарте языка без синтаксиса
[15:04:54] <kemiisto> 0 страниц!
[15:04:55] <valexey> тем более что их два
[15:04:59] <kemiisto> ВИРТ НЕРВНО КУРИТ!
[15:05:03] <kemiisto> ;)
[15:05:04] <valexey> kemiisto: стандарт языка не синтаксис описывается
[15:05:07] <geniepro> схема рулез фарева SICP!!!111
[15:05:09] <valexey> ;описывет
[15:05:21] <kemiisto> valexey: а что там тогда?
[15:05:27] <valexey> семантика
[15:05:33] <kemiisto> ВНЕЗАПНО!
[15:05:35] <kemiisto> БЛЯДЬ!
[15:05:36] <kemiisto> :D
[15:05:56] <kemiisto> а семантику ЧЕГО там описывают?
[15:06:02] <geniepro> Like BCPL and FORTH, B had only one datatype: the computer word.

фуууу
[15:06:02] <valexey> описалово языка которое на 90 процентов состоит из описания синтаксиса - не нужно. оно бесполезно, как и сам язык
[15:06:28] <valexey> geniepro: а что еще для щасстья нужно? :-)
[15:06:34] <valexey> разумный минимализм же!
[15:06:59] <valexey> kemiisto: реквестую темку на форуме про решебник :-)
[15:07:11] <kemiisto> valexey: мне работать надо!!!111
[15:07:12] <kemiisto> :D
[15:07:20] <valexey> толсто же!
[15:16:55] <geniepro> Это пример программы Hello, World для реализации Dartmouth ALGOL 30 см. ссылку.
BEGIN
FILE F (KIND=REMOTE);
EBCDIC ARRAY E [0:11];
REPLACE E BY "HELLO, WORLD!";
WHILE TRUE DO
 BEGIN
 WRITE (F, *, E);
 END;
END.
[15:17:59] <geniepro> Трюк Йенсена

Рассмотрим следующую программу на Алголе:
begin
 procedure p (a, b);
   name a, b; integer a, b;
 begin
   for a:=1 step 1 until 10 do
     b := 0
 end p;
 integer i; integer array s [1:10];
 p (i, s[i])
end


В соответствии с определением способа передачи параметров по имени, вызов процедуры p в данном случае должен приводить к обнулению всех элементов массива s. Такое использование передачи параметра по имени было названо «трюком Йенсена» в честь впервые предложившего его программиста. Фактически для передачи по имени сложных выражений компилятор должен был создавать специальную неименованную функцию, вычисляющую это выражение в его собственной среде окружения, так называемый санк (англ.). Ближайшим аналогом санка является замыкание в языке Лисп, однако санк возникает только в специфическом контексте передачи параметров. Эта особенность языка Алгол-60, в остальном довольно разумно организованного, примечательна удивительным сочетанием полной практической бесполезности с чрезвычайной сложностью и неэффективностью реализации. Поэтому в дальнейшем развитии языков программирования от передачи параметров по имени отказались. В языке PL/I, в целом очень много унаследовавшем от Алгола-60, на этой волне заодно отказались и от передачи параметров по значению, оставив, как и в раннем Фортране, единственный механизм — по ссылке.[2] В языке Си, напротив, осталась только передача параметров по значению (передача по ссылке там может быть смоделирована путём использования параметров типа «указатель»). А для тех случаев, когда передача параметров по имени имеет смысл (она необходима, например, если требуется создать функцию, для которой значения параметров не вычислялись бы в момент вызова), были созданы специальные синтаксические механизмы.
[15:18:07] <geniepro> вот оно, ФП!!!111
[15:24:34] <valexey> угу. костыль на костыле
[15:27:02] <kemiisto> :-D
[15:32:23] <geniepro> о! наконец-то я нашёл адекватный перевод фразы "list comprehension" -- "Описание списка" !!! из перевода стандарта хаскелла!!!
[15:34:00] <valexey> это описание списка не говорит о том, что список будет создан :-)
[15:34:10] <valexey> я бы перевел это скорее так: хитрожопый конструктор списка
[15:35:15] <geniepro> это не конструктор списка, а описание списка )) список описывается, а не конструируется ))
[15:35:22] <geniepro> декларативное рулит!!!
[15:35:47] <valexey> ой, таки не надо. в хаскеле есть конструкторы данныъ
[15:35:49] <valexey> х
[15:35:54] <valexey> и конструкторы типов
[15:36:13] <valexey> а это компрехенсня - просто хитрожопый конструктор данных
[15:36:17] <geniepro> это не конструкторы, это описатели )))
[15:36:50] <valexey> ок. это дескриптор списка
[15:38:25] <geniepro> окончательный вариант:

module Ex_1 where

main = do
   n <- readLn :: IO Integer
   let xs = [ show i ++ " и " ++ show (n `div` i)
            | i <- takeWhile (\k -> k*k <= n) [2..]
            , n `mod` i == 0
            ]
   mapM_ putStrLn xs

[15:38:49] <geniepro> так чо, тема будет нет?
[15:38:57] <valexey> /me pokes kemiisto
[15:39:09] <valexey> это должен сделать аффтар выкладывающий оные задачки
[15:39:10] <valexey> не я
[15:39:34] <geniepro> грохнул я вчера вин8 и поставил вместо нея PC-BSD 8.2 x64 -- такое г, такое г )))
[15:40:20] <geniepro> захотел обновить vlc из репозитория, а он грит -- там 2хх метров обновлений ((
[15:40:37] <valexey> и шо?  чем тебя обновления не устраивают?
[15:40:46] <kemiisto> valexey: :D
[15:40:47] <geniepro> пытался через копете зайти в жабер, нипонял, как там комнату открыть (
[15:41:05] <valexey> use psi, Luke!
[15:41:05] <geniepro> 200 с лишним метров обновлений -- у меня это полсуток же )))
[15:41:14] <geniepro> там нету psi
[15:41:19] <kemiisto> valexey: ты такой настойчивый!!!111
[15:41:20] <kemiisto> :D
[15:41:25] <kemiisto> ща будет
[15:41:47] <geniepro> там надо раздел на воруме, и каждую задачу в отдельной теме ))
[15:41:55] <geniepro> форуме* ))
[15:42:48] <valexey> geniepro: для этого на гитхабе есть вики
[15:43:15] <valexey> куда можно выкладывать кристаллизировавшиеся идеи и измышлизмыё
[15:44:56] <geniepro> окончательно:

module Ex_2 where

main = do
   n <- readLn :: IO Integer
   putStrLn $ if perfect n then "Да" else "Нет"
 where
   perfect x = x == sum [d | d <- [1..x `div` 2], x `mod` d == 0 ]

[15:45:56] <valexey> geniepro: а теперь в pointless стиле!
[15:46:02] <valexey> это будет фаталити :-)
[15:47:34] <shaggie> кстати не очень понимаю, почему pointless стиль так называется
[15:47:55] <shaggie> по факту в программе наоборот не остаётся ничего кроме точек
[15:48:31] <valexey> shaggie: без привязки переменных
[15:48:33] <valexey> к именам
[15:48:40] <valexey> то есть без точек привязки
[15:50:26] <geniepro> pointfree же )))
[15:51:31] <shaggie> ах точно, пойнтфри. тогда "бесточечный" это просто косяк переводчиков
[15:51:39] <geniepro> почему на западе стала так популярна Amy Winehouse, ну померла она от передоза недавно -- ладно, бывает...
чота слушаю её R&B -- ничего особенного...
[15:53:22] <valexey> ты не нативас!
[16:03:16] <valexey> https://lh4.googleusercontent.com/-7-FGMKhDxM4/TmsHq3B9lkI/AAAAAAAABMQ/KlP_msgSt74/h301/245990_700b.jpg
[16:07:19] <kemiisto> valexey: кстати, в свете повсеместной троллоты
[16:07:35] <kemiisto> выражение "толстый клиент" наконец-то обретает свой истинный смысл
[16:07:37] <kemiisto> :D
[16:07:46] <geniepro> Разработчики популярной программы WhatsApp Messenger сообщили в блоге, что провели оптимизацию серверного бэкенда для улучшения производительности, аптайма и масштабируемости. В результате им удалось добиться, что один сервер обслуживает более миллиона tcp-сессий.

$ netstat -an | grep -c EST
1016313

Бэкенд WhatsApp работает на FreeBSD + Erlang. Они не первые, кто добился миллиона одновременных tcp-сессий на одном сервере.
[16:07:52] <geniepro> ерланг рулит!
[16:08:46] <valexey> НЕ первые
[16:09:09] <valexey> алсо наверняка без Си там не обошлось :-)
[16:09:21] <kemiisto> valexey: я назвал твои сишечные решения "толстыми"
[16:09:22] <kemiisto> :D
[16:09:30] <kemiisto> надеюсь, ты не против
[16:09:31] <geniepro> неа, те, которые первые -- тоже ерланг )
[16:09:51] <kemiisto> geniepro: там же написано "FreeBSD"
[16:10:03] <kemiisto> отгадай, на чём она написана?
[16:10:05] <kemiisto> :D
[16:10:17] <geniepro> A Million-user Comet Application with Mochiweb, Part 3
http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-3
[16:10:41] <geniepro> ос не решает, она просто даёт программе работать и всё!
[16:11:12] <kemiisto> geniepro: хотел бы я посмотреть как это работало бы на Вынде.
[16:11:13] <kemiisto> :D
[16:11:20] <valexey> geniepro: ты очень сильно ошибаешься
[16:11:28] <geniepro> намана будет работать
[16:11:44] <valexey> миллион соединений ты не сможешь обрабатывать без epool'ов или kqueue
[16:11:51] <valexey> селектом не обойдешься
[16:12:46] <geniepro> ерланг рулит!!!111 )))
[16:13:33] <kemiisto> говорящие названия продуктов JetBrains
[16:13:42] <kemiisto> PyCharm
[16:13:45] <kemiisto> а вот
[16:13:49] <kemiisto> PHPStrom
[16:13:51] <kemiisto> Storm
[16:13:53] <valexey> Ж-)
[16:13:54] <kemiisto> :D
[16:14:14] <kemiisto> хотя стрём тоже годится
[16:14:38] <geniepro> писец редит упал что ле?
[16:15:25] <valexey> кто такой редит?
[16:16:23] <geniepro> reddit.com/programming
reddit.com/haskell
reddit.com/erlang и тд
[16:16:58] <kemiisto> http://www.reddit.com/oberon
[16:17:03] <kemiisto> page not found
[16:17:08] <kemiisto> НИНУЖЕН!!!!1111
[16:17:56] <shaggie> дык потому и not found что упал
[16:18:09] <kemiisto> geniepro: ты дал неправильные ссылки
[16:18:27] <geniepro> почему неправильные? о_О
[16:19:04] <kemiisto> http://www.reddit.com/r/haskell/
[16:19:07] <kemiisto> всё работает
[16:19:22] <geniepro> да, неправельные
http://www.reddit.com/r/haskell
http://www.reddit.com/r/dependent_types
http://www.reddit.com/r/programming/
http://www.reddit.com/r/erlang/
[16:19:40] <kemiisto> http://www.reddit.com/r/oberon/
[16:19:46] <kemiisto> НУЖЕН, БЛЕЯТЬ!
[16:19:47] <kemiisto> :D
[16:21:51] <valexey> так чем этот реддит знаменит то?
[16:22:34] <kemiisto> там толстят часто в тредах
[16:22:40] <geniepro> ну как чем? на нём сейчас все обсуждения ведутся
стек оверфлой и всякие гуглгрупс или чо там раньше было -- всё уже в прошлом
[16:23:17] <valexey> чем оно удобней?
[16:23:22] <kemiisto> geniepro: SO не для обсуждений
[16:24:02] <geniepro> ну что значит чем удобнее? просто все там уже давно )))
[16:41:25] <geniepro> валексей, де можно найти нормальный толковый пример описания семантики императивного языка типа оберона или модулы?
[16:42:54] <kemiisto> у второй и третей модулы есть же стандарты
[16:43:01] <kemiisto> а и Фортран же, блеать!!!
[16:43:04] <kemiisto> :D
[16:49:49] <geniepro> берёшь убойную идею
и офигенные слова
потом шлифуешь полируешь
и получается гавно
[16:50:29] <geniepro> он в офисе скучая пишет
с гавном и сексом пирожки
а дома теми же руками
ест борщ и трогает детей
[16:51:28] <valexey> geniepro: чем описалово модулы той же не подходит?
[16:54:34] <geniepro> ага, в тыщу страниц которое? и де там семантика???
[17:00:19] <valexey> в какую тыщу? ты что?
[17:01:32] <valexey> 110 страниц в прыжке
[17:01:57] <geniepro> надо позырить будет
[17:02:08] <valexey> тыща страниц это С++ :-)
[17:02:25] <valexey> http://modula2.net/resources/M2R10.pdf
[17:12:55] <kemiisto> R10 блеять!
[17:13:59] <kemiisto> valexey: https://bitbucket.org/trijezdci/m2r10/src
[17:14:06] <kemiisto> для LLVM блеять!
[17:14:08] <kemiisto> :D
[17:14:36] <kemiisto> форкай и делая O7!
[17:14:40] <kemiisto> делай
[17:19:35] <kemiisto> о! там hg!
[17:19:38] <kemiisto> :)
[17:31:11] <valexey> kemiisto: да, я и на битбукете есть :-)
[17:52:24] <kemiisto> valexey: а эту штуку видел?
[17:52:29] <kemiisto> как оно?
[17:52:31] <kemiisto> нужно?
[17:53:58] <kemiisto> http://www.amazon.com/Introduction-Quantum-Mechanics-David-Griffiths/dp/0131118927
[17:54:19] <kemiisto> нашёл за 45, включаю пересылку
[17:54:22] <kemiisto> :)
[18:02:08] <valexey> хез. не читал
[18:02:44] <kemiisto> valexey: я про M2R10 для llvm
[18:02:47] <kemiisto> XD
[18:03:01] <valexey> для llvm нужно
[18:03:08] <kemiisto> :-D
[18:03:12] <valexey> хотя llvm для винды не шибко кошерно - оно SEH не умеет
[18:03:26] <kemiisto> тут нет исключения
[18:03:32] <kemiisto> винда же нинужна
[18:03:37] <kemiisto> значит вычёркиваем
[18:09:56] <valexey> и где тут geniepro?
[18:10:02] <valexey> его вирши не компиляются!!1
[18:12:28] <kemiisto> http://3.bp.blogspot.com/-v76ph-FaSxY/ThppfZdIwaI/AAAAAAAACwc/Cs8lLchcpsI/s1600/Untitled.jpg
[18:12:33] <kemiisto> ДОБРОГУГЛ!!!111
[18:12:35] <kemiisto> :D
[18:13:53] <valexey> гыгы
[18:30:30] <valexey> дас. хаскель где-то разика в три-пять медленней
[18:31:59] <valexey> хотя нет. в 10 раз
[18:39:44] <valexey> второе решение вообще жесть
[18:40:05] <valexey> $ time echo 200000000 | ../C89/a.out
No

real 0m0.010s
user 0m0.001s
sys 0m0.003s
[18:40:34] <valexey> $ time echo 200000000 | ../haskell/a.out
Нет

real 0m7.109s
user 0m7.059s
sys 0m0.045s
[18:40:44] <valexey> почувствуйте разницу :-)
[18:41:32] <valexey> А теперь увеличим в 10 раз число
[18:42:07] <valexey> $ time echo 2000000000 | ../C89/a.out
No

real 0m0.006s
user 0m0.002s
sys 0m0.004s
[18:44:07] <valexey> $ time echo 2000000000 | ../haskell/a.out
Нет

real 1m10.526s
user 1m10.109s
sys 0m0.398s
[18:45:34] <genieprox> как никампиляюцца??? в винхугсе всё зашибись работает!!!111
[18:46:26] <genieprox> ща позырю чо вы тут без меня нафлудили )
[18:47:04] <valexey> $ time echo 33550336 | ../C89/a.out
Yes

real 0m0.025s
user 0m0.001s
sys 0m0.004s
$ time echo 33550336 | ../haskell/a.out
Да

real 0m1.176s
user 0m1.164s
sys 0m0.011s
[18:47:25] <valexey> genieprox: я вроде все что нужно на форум выложил.
[18:48:09] <genieprox> что за тайминга?
[18:48:15] <genieprox> тайминги*
[18:48:24] <valexey> задача про совершенные числа :-)
[18:48:42] <genieprox> так он скомпилился или как?
[18:48:50] <valexey> как видим, хаскель… гм. всего то в 100 раз медленней :-)
[18:49:08] <valexey> я подхачил. и оно собралось. точнее - я выпилил модуль
[18:49:16] <valexey> но в таком виде комиттить не хочу
[18:50:23] <genieprox> бугага! так для компиляции в ghc надо было имя модуля переименовать на Main -- конечно, без этого главную функцию линкер не найдёт )))
[18:50:41] <genieprox> я-то проверял в интерпретаторе, без компиляции )))
[18:51:26] <genieprox> да и кстати, в сишном варианте int32?
а то у меня там безразмерные целые -- это снижает скорость, хотя и не в сто раз
[18:52:47] <valexey> в сишном варианте int. а уж 32 он или что-то другое - никому не известно :-)
[18:53:34] <valexey> если имя модуля поменять, то кошерные хаскельные тулзы будут ругаццо что файло называется иначе нежели модуль
[18:53:42] <valexey> короче, правь и выкладывай как кошерно
[18:54:46] <valexey> включил оптимизацию у обоих. теперь так:
[18:54:47] <valexey> $ time echo 33550336 | ../haskell/a.out
Да

real 0m0.512s
user 0m0.504s
sys 0m0.007s
[18:54:56] <valexey> $ time echo 33550336 | ../C89/a.out
Yes

real 0m0.004s
user 0m0.001s
sys 0m0.003s
[18:55:13] <valexey> ну, то есть хаскель всего то в 504 раза медленней Сей :-)
[18:55:51] <genieprox> а я там имена файлам не давал, так как не было никаких файлов в моём коммите на форум )))
[18:56:14] <valexey> но ты дал именя модулям, а имя файла должно совпадать с именем модуля
[18:56:34] <valexey> так чта ша. напиши как кошерно сделать. или как компилять.
[18:56:53] <valexey> У ХАСКЕЛЬЯ ПРОБЛЕМЫ ДАЖЕ С ХЕЛЛО ВОРЛДАМИ!!!1
[18:57:54] <genieprox> короче, создаётся папка с именем Ex_1, например, в него засовывается файл с именем Main.hs, в этом файле записывается код стартапной функции main
[18:58:23] <valexey> э? ничего не понял. развернуто на форум отпиши.
[18:58:38] <genieprox> чо ж тут нипанятного? о_О
[18:58:54] <genieprox> и этот человек говорит, что учил хацкель )))
[18:59:15] <genieprox> щас засуну архиф тогда на форум
[18:59:34] <genieprox> тока почитаю, что тут начатили раньше )
[19:01:22] <valexey> ok :-)
[19:32:09] <valexey> genieprox: а решение матрицы на хаскеле будет? :-)
[19:32:59] <genieprox> если не будет лень думать )
[19:33:36] <valexey> :-D
[19:34:05] <valexey> ну, по идее на хаскеле это должно быть проще - ведь он позволяет как раз сосредоточиться на задаче, а не бороться с инструментом!
[19:34:54] <genieprox> толсто ))
[19:35:26] <valexey> но разве это не так?
[19:36:22] <genieprox> всё не так как хотелось бы
[19:36:39] <genieprox> ни один язык не позволяет отвлечься от инструмента
[19:39:52] <valexey> си и с++ позволяет.
[19:40:08] <valexey> когда я пишу, я просто забываю о том, что у меня какой-то инструмент есть.
[19:40:26] <valexey> меч становится продолжением руки
[19:44:39] <genieprox> да нифига подобного!!!111 каждый раз когда я сажусь за долбанный билдер -- я проклинаю всё на свете, и в первую очередь борланда
[19:45:08] <genieprox> ну вот, вбросил и чухнул )))
[19:45:41] <shaggie> но ведь хорошо вбросил
[20:13:08] <genieprox> и пусть валексей утестится скорость мерить )))
[20:13:48] <genieprox> http://oberspace.dyndns.org/index.php/topic,142.msg2268.html#msg2268
[20:35:22] <valexey> genieprox: а зачем тебе мегабайтные аттачменты.
[20:35:24] <valexey> ?
[20:53:13] <genieprox> ну мало ли, вот я хотел экзешники прикрепить -- не поместились ((
[20:54:33] <kemiisto> genieprox: трояны?
[20:54:35] <kemiisto> :D
[20:54:41] <kemiisto> 21 век же!
[20:54:52] <kemiisto> dropbox.com
[20:54:55] <kemiisto> какой-нить
[21:25:20] <valexey> гм. и что бы я с этими экзешниками делал бы?
[21:34:55] <kemiisto> valexey: Кэп в шоке!
[21:35:04] <kemiisto> ТЫ БЫ ИХ ИСПОЛНЯЛ!
[21:35:06] <kemiisto> :D
[21:35:14] <valexey> Я?!
[21:35:26] <valexey> я разве похож на винду, или x86 проц?
[21:35:41] <kemiisto> valexey: ну, запускал :)
[21:43:55] <valexey> ну вот. сбежал
[21:43:59] <valexey> а я как раз допилил:
[21:44:13] <valexey> http://oberspace.dyndns.org/index.php/topic,142.msg2270.html#msg2270
[22:23:03] <genieprox> так скока там битов в int у сей? на каком числе он сломается? )))
[22:23:12] <genieprox> а хацкель решит!!! )))
[22:26:26] <genieprox> гыгыгы! нипашет сишное решение, запиленное на гитхабе!!!
[22:26:43] <kemiisto> genieprox: у сей есть http://gmplib.org/
[22:26:46] <kemiisto> например
[22:27:09] <kemiisto> чует моё сердце в недрах ваших хаскеллей оно и запилено
[22:27:22] <genieprox> на число 137438691328 говорит No )))))
TinyCC 0.9.25
[22:27:44] <genieprox> нечего тут и чуять -- достаточно исходники GHC открыть -- и там GMP )))
[22:28:12] <genieprox> реквестирую решение на сях с использованием gmplib )))
[22:28:12] <valexey> genieprox: они оттуда gmp выпиливали сколь я помню
[22:28:19] <valexey> из за некошерности лицензии.
[22:28:46] <valexey> то есть там есть опция - выкинуть gmp нахрен и юзать кошерныей хаскелевский большой чисе
[22:28:47] <valexey> л
[22:29:01] <valexey> genieprox: мое текущее решение не сломается на любых числах
[22:29:04] <valexey> С++ решение
[22:30:07] <genieprox> а на сях слабо, да?
[22:30:18] <genieprox> и де оно, кстати, это решение???
[22:30:31] <valexey> нет, не слабо.
[22:30:40] <valexey> но не вижу смысла. будет в точности то же самое
[22:31:01] <genieprox> однако текущее решение у мя нипашет. как так?
[22:32:55] <valexey> так. я не вижу смысла заморачиваться большими числами для ученических решений. если тебе нужны большие числа, то получи:
[22:32:59] <valexey> $ cat perfect.cpp
#include <gmpxx.h>
#include <iostream>

int main()
{
   mpz_class n;
   std::cin >> n;
   mpz_class last = n;
   mpz_class d,res=n-1;
   for (d=2; d<last; d=d+1)
       if (0==(n%d)) last = n/d, res-=d+last;
   std::cout <<  (0==res ? "Yes\n" : "No\n");
   return 0;
}
[22:34:33] <genieprox> писец tinycc не умеет работать с int64???
[22:34:51] <genieprox> ну и какая скорость-то?
[22:35:31] <valexey> дык на форуме же скорость писана
[22:35:44] <genieprox> это было значение для этого решения?
[22:35:49] <valexey> да
[22:35:56] <valexey> более чем в два раза быстрее хаскеля
[22:36:11] <genieprox> ну и чо вдруг с++ не стал рвать хацкеля в сто раз??? )))
[22:36:30] <genieprox> как это в два раза??? там было написано полтора раза!!!111
[22:37:03] <valexey> дык какая разница - в обоих решениях бОльшую часть времени работает СИШНЫЙ libgmp. хаскель его всего то в два раза затормозил :-)
[22:37:11] <valexey> а ты посмотри, я там обновил статус :-)
[22:37:13] <genieprox> в полтора!!!
[22:38:37] <valexey> ну, конечно же 13 секунд всего в полтора раза дольше чем 6 секунд!
[22:40:21] <genieprox> это ниправилдьные цифры!!!111 поздно уже!!! в полтора всё равно )))
[22:41:04] <genieprox> пойду приму душ и буду смареть, чо там в описалове стандарта модулы2 накалякано )))
[22:41:25] <genieprox> или же досмотрю фильму про канфуция ))) подумаю ещё )))
[22:41:44] <valexey> :-)
[22:43:40] <valexey> kemiisto: а что у фортрана с большими числами? :-)
[22:45:27] <kemiisto> если с просто большимы
[22:45:36] <kemiisto> то имплементейшн дипендент
[22:45:45] <kemiisto> а если multiprecision
[22:45:51] <kemiisto> то сторонние либы
[22:46:14] <valexey> э? прости за темноту, но чем одно от другого отличается.
[22:46:16] <valexey> ?
[22:46:36] <kemiisto> ну как
[22:46:44] <kemiisto> большие могут быть большимы
[22:46:54] <kemiisto> но фиксированный диапозон
[22:46:56] <kemiisto> то есть
[22:46:58] <kemiisto> скажем
[22:47:10] <kemiisto> у тебя могут быть 128-битные целые
[22:48:13] <valexey> гм. судя по всему, у фортранов в чести вот это: http://crd.lbl.gov/~dhbailey/mpdist/
[22:49:01] <kemiisto> там много разных либ
[22:49:06] <kemiisto> я не трогал никогда
[22:49:09] <kemiisto> так что нинаю
[22:49:59] <valexey> так. я поставил ФОРТРАН
[22:51:27] <valexey> чорт. оно даже скомпиляло. странно. А ГДЕ СЕКС?!
[22:59:35] <kemiisto> valexey: gfortran?
[23:07:10] <valexey> угу
[23:13:31] <kemiisto> 4.6?
[23:13:59] <kemiisto> http://hpc.sourceforge.net/ ?
[23:15:30] <valexey> $ gfortran --version
GNU Fortran (Debian 4.4.5-8) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
[23:16:07] <valexey> version
[23:16:09] <Жаба> valexey,  you have Psi 0.14 on Debian GNU/Linux 6.0 (squeeze)
[23:16:16] <kemiisto> старый как говно мамонта
[23:16:42] <kemiisto> там, елси я прально помню, начиная с 4.6 можно узнавать какие разновидности чисел доступны
[23:16:47] <kemiisto> PROGRAM main
 USE iso_fortran_env
 PRINT *, integer_kinds
 PRINT *, huge(maxval(integer_kinds))
END PROGRAM main
[23:17:08] <kemiisto> скажем, у мну 32-битный gfortran-4.7
[23:17:20] <kemiisto> выдаёт 1 2 4 8
[23:17:29] <kemiisto> это разновидности
[23:17:37] <kemiisto> НЕ ОБЯЗАТЕЛЬНО число битов
[23:17:43] <kemiisto> хотя часто так и есть
[23:17:46] <kemiisto> ну и там
[23:17:47] <valexey> скорее число байтов
[23:17:53] <kemiisto> ну да, байтов
[23:17:59] <kemiisto> но стандарт не задаёт
[23:18:06] <kemiisto> такого соответствия
[23:18:32] <kemiisto> 2147483647
[23:18:41] <kemiisto> ожидаемо
[23:19:10] <kemiisto> да, в 4.5 ещё нет такого :(
[23:19:31] <valexey> язык то развивается!!!1
[23:19:41] <valexey> не то что там всякие хаскели :-)
[23:20:42] <kemiisto> valexey: у тебя stable чолэ Debian то?
[23:21:03] <valexey> угу
[23:21:06] <kemiisto> бо в тестинге GCC 4.6
[23:21:13] <kemiisto> угу
[23:21:27] <kemiisto> и нерабочий tar
[23:21:30] <kemiisto> :D
[23:21:45] <genieprox> описалово языка Ela 113 стр )) http://elalang.googlecode.com/files/ElaBook-0-3.pdf
[23:22:12] <valexey> в жопу тар!
[23:22:19] <valexey> в жопу тестинг!
[23:22:35] <kemiisto> tar, наверное, тебя старше
[23:22:39] <kemiisto> а ты так нетолерантно!
[23:22:41] <kemiisto> :D
[23:22:41] <genieprox> фортрану полвека+, а он ещё развивается? какой-то он даун тормознутый )))
[23:23:27] <kemiisto> причём совсем разные языки
[23:23:29] <valexey> дык область то расширяется, новые требования там и так далее
[23:23:33] <kemiisto> много разных
[23:23:39] <kemiisto> ИЧСХ
[23:23:46] <valexey> genieprox: гм. когда уже автору Ela проведут интернет?
[23:24:09] <kemiisto> компилер от Intel или МежДелМаш при правильных ключах компилит легаси-код FORTRAN 66
[23:24:12] <kemiisto> :D
[23:24:42] <valexey> Ж-)
[23:24:48] <kemiisto> а эти ваши ЛИСПы тоже ведь в МДМ придумали?
[23:24:57] <genieprox> хм? интернет? автору Ela? в смысле?
[23:24:58] <valexey> оно во внииэфе используется, да
[23:25:17] <valexey> genieprox: в прямом. с инетом он в одиночку столько не настрочил бы
[23:25:52] <genieprox> мдм -- ето что? о_О
[23:26:05] <genieprox> три мужских туалета знаю, а мдм неа ((
[23:26:33] <genieprox> лисп по-моему в MIT придумали
[23:30:11] <valexey> genieprox: межделмаш же
[23:30:14] <valexey> IBM
[23:32:05] <genieprox> http://code.google.com/p/elalang/ ваще рульный язык -- ML-подобный синтаксис, динамическая типизация ))
[23:32:33] <genieprox> точнее хаскелеподобный
[23:32:45] <valexey> зачем там динамическая типизация? чтобы тормозило лучше,
[23:32:47] <valexey> ?
[23:33:14] <genieprox> ну как зачем? для гибкости же ))
[23:34:25] <genieprox> какой враг народа дал мне URL http://modula2.net/resources/M2R10.pdf ???
там же всё на буржуинском!!!111 (((
[23:34:55] <valexey> ?
[23:35:22] <valexey> ElaBook тоже
[23:35:34] <genieprox> так елабук я же не читаю )))
[23:35:49] <genieprox> он может быть хоть на китайском )
[23:37:58] <genieprox> а это точно модула-2???
[23:38:57] <genieprox> ++ suffix for increment statement
-- suffix for decrement statement
:: type conversion operator
это же ни разу не виртовская модула-2!!!111
[23:39:22] <kemiisto> конечно не Виртовская
[23:39:24] <kemiisto> это ISO
[23:39:37] <kemiisto> valexey: http://forum.oberoncore.ru/viewtopic.php?f=26&t=3576
[23:39:51] <kemiisto> скоро ББ и на виндах перестанет запускаться
[23:39:58] <kemiisto> а на 8 он будет забавно смотреться
[23:39:59] <genieprox> This document is a concise description of the R10 dialect of Modula-2, jointly developed in 2009
and 2010 by B.Kowarsch and R.Sutcliffe, as a modern revision of classic Modula-2.

это ни разу не ISO
[23:40:05] <kemiisto> привет из 90-х
[23:40:10] <kemiisto> :D
[23:40:23] <kemiisto> текст-как-интерфейс на фоне метро
[23:40:28] <kemiisto> ТОЛСТОТА!
[23:42:28] <valexey> genieprox: виртовская это не Модула-2, а просто модула
[23:43:28] <valexey> kemiisto: ну, вообще то метро это почти что тексткакинтерфейс :-)
[23:44:18] <genieprox> ещё как модула-2!!! у мя есть книга!!!
[23:45:28] <valexey> в жопу книгу!
[23:45:49] <genieprox> фигассе о_О
[23:46:11] <genieprox> эта книга -- перевод книги 86 г выпуска!!!
[23:46:14] <valexey> фиг в ass'e!
[23:46:23] <valexey> старье :-)
[23:47:38] <genieprox> книга супер! я по ней изучал модулу в 1998 годе!!! у мя там даже надпись подарчная есть -- именно 1998 г )))
[23:47:58] <genieprox> писец 13 лет прошло уже )))
[23:48:17] <valexey> и как? успешно? сколько проектов на модуле написал?
[23:48:24] <genieprox> а вот щас нарываюсь на свои мессаги 2007 г -- тоже вроде недавно было, а млин вапще ужас )))
[23:48:36] <genieprox> на модуле? пару прог написал, а чо? супер )))
[23:49:09] <genieprox> я в то время больше в совокупности электроникой, механикой, оптикой, программингом и газоанализом занимался )))
[23:49:12] <valexey> лучше оберона. Ж-)
[23:49:13] <valexey> ?
[23:49:16] <genieprox> на сях
[23:49:31] <genieprox> да оберон в подмётки не годится ))
[23:49:37] <valexey> да, си рулез.
[23:50:06] <genieprox> а просто не было больше ничего у меня. тока PL\M, но он вапще грусный язык )
[23:50:22] <valexey> это в 98 то году? странно
[23:50:54] <valexey> а чем абирон хуже модулы?
[23:51:05] <genieprox> лана, хер с ним, модула-не модула, так де там описание семантики языка-то? пока тока на синтаксис натыкаюсь ))
[23:51:15] <genieprox> абирон всем хуже всех )
[23:53:04] <genieprox> PROCEDURE Variadic ( v : VARIADIC OF INTEGER );
BEGIN
FOR item IN v DO WRITE(f, item) END;
RETURN
END Variadic;
[23:54:08] <valexey> семантику пока формально не научились описывать
[23:54:12] <valexey> только синтаксис
[23:54:18] <valexey> и то не полностью
[23:54:38] <valexey> поэтому семантика прячется в человеческих словах которые описывают очередную синтаксическую конструкцию
[23:54:52] <genieprox> я пытался почитать про операционную семантику хаскела на инглише -- нихера не понял )
[23:57:13] <valexey> все описание синтаксиса по сути - просто РБНФ. все остальное - семантика.
[23:57:44] <genieprox> ну и как тогда описывать семантику не описывая синтаксиса? )))
[23:58:30] <kemiisto> genieprox: а ты ведь не из Роисси?
[23:58:46] <valexey> та легко. описывай сразу семантическое дерево
[23:59:08] <valexey> точнее графф
[23:59:14] <genieprox> не, ни разу не из роисси ))
[23:59:28] <genieprox> я теорию графов нинаю ))
[23:59:38] <valexey> эм...
[23:59:41] <valexey> ну...
[23:59:57] <genieprox> секспрешнс сойдут? ))
[23:59:59] <valexey> я просто не могу представить зачем нужен синтаксис при описании семантики