разговоры о хаскеле
Jul. 5th, 2015 11:28 amЕсть такой подкаст о распределенных базах данных DevZen, почему-то выдающий себя за подкаст о программировании. Но недавно они сделали исключение, выгнали женщин и детей, пригласили двух замечательных гостей - Романа Чепляку, которого мы все любим за его Cartesian Closed Comics, и Дениса Шевченко, автора книжки "О Haskell по-человечески" - и получился довольно хороший и познавательный выпуск, рекомендую.
Роман рассказал, что в свое время интервьюировал не меньше двух десятков хаскеллистов в Киеве, и практически никто не смог во время интервью решить такую задачку: есть длинный список чисел, надо найти их среднее арифметическое за один проход по списку и О(1) памяти. Занятно.
Роман рассказал, что в свое время интервьюировал не меньше двух десятков хаскеллистов в Киеве, и практически никто не смог во время интервью решить такую задачку: есть длинный список чисел, надо найти их среднее арифметическое за один проход по списку и О(1) памяти. Занятно.
no subject
Date: 2015-07-05 04:34 am (UTC)Неужели такая нехватка общего образования... аяяй.
В Питере бы сразу сказали: "посчитаем моменты".
no subject
Date: 2015-07-05 04:56 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-05 07:54 am (UTC)Присоединяюсь к Ивану Ганди.
Казалось бы, foldl' во всех уччебниках для детей есть.
Или хаскеллисты стали умствовать про то, что арифметика нужна длинная, а это уже сразу O(n)... даже без лени и Шлемюэля?
Хотя да, нужно делать энергичный кортеж (количество,сумма), иначе фолдл его только до конструктора форсирует, а внутри будут санки.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-05 08:09 am (UTC)Неужели прям ни одного не нашлось, кто бы написал
явную рекурсию со строгим аккумулятором, т.е аналог
явного цикла, как Си?
no subject
Date: 2015-07-05 09:30 am (UTC)no subject
Date: 2015-07-05 12:42 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2015-07-05 08:16 am (UTC)А что же тут удивительного?
Чай не императивщики. :) разглядывать ассемблерный код своего поделия не будут.
no subject
Date: 2015-07-05 08:24 am (UTC)Ну или вот взять людей выше по треду, которые путают асимптотику алгоритма со способом интерпретации, хотя способ интерпретации добавляет лишь константу.
(no subject)
From:no subject
Date: 2015-07-05 09:34 am (UTC)no subject
Date: 2015-07-05 12:58 pm (UTC)(no subject)
From:no subject
Date: 2015-07-05 10:37 am (UTC)no subject
Date: 2015-07-05 12:40 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-08 12:33 pm (UTC)A1 = X1 / 1
A2 = (X1 + X2) / 2
A3 = (X1 + X2 + X3) / 3
AN = (A(N-1) * (N-1) + XN) / N
Потом написал такой код https://gist.github.com/astarasikov/c4506f456dd69e6a844e
потом вспомнил про kahan summation, посмотрел на время, и решил, что хватит зависать в социальных сетях на сегодня
Жопоболь
Date: 2015-07-05 12:36 pm (UTC)no subject
Date: 2015-07-05 02:08 pm (UTC)на бумажке?
no subject
Date: 2015-07-05 02:33 pm (UTC)no subject
Date: 2015-07-05 03:09 pm (UTC)http://dmytrish.livejournal.com/46655.html
no subject
Date: 2015-07-05 03:08 pm (UTC)- сколько бит в байте
- сколько разных значений можно закодировать 6-ью битами
И это правило реально работает! Я не думал, что помогает, но реально находятся люди, которые этого не знают.
Не уверен, что для всех оно применимо, может на каком-нибудь "1С" или Visual Basic можно программировать не зная этого. Но мне даже странно слышать такое!
no subject
Date: 2015-07-05 03:15 pm (UTC)Возможно вы имели в виду: в октете
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-05 05:44 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-06 06:15 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2015-07-06 04:33 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-06 06:14 am (UTC)так нельзя?
no subject
Date: 2015-07-06 08:09 am (UTC)Там вся сложность задачи именно в особенностях хаскельной ленивости, на строгих языках все просто, как в твоем решении.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-07-06 12:41 pm (UTC)Я сам когда-то спрашивал банальное -- перевернуть список -- тоже не все могли.
Может это нервы, а может быть на каких-то работах можно даже без знания основ обойтись.
no subject
Date: 2015-07-09 07:29 pm (UTC)А в чем подвох задачи с массивом? Если массив небольшой можно встроенными средствами его отсортировать и взять разность первого и последнего элемента. Для большого массива нужны 2 переменные (мин и макс) и итератором пройти массив.
(no subject)
From:(no subject)
From:(no subject)
From:Готов К Продакшну
Date: 2015-07-07 09:39 am (UTC)