fenikso: (Default)
Вдохновившись rss-лентой, написал вчера реализацию RLE на Haskell (одна строчка), напрочь забыв про span (т.е. через takeWhile и dropWhile). Надо, надо перечитать документацию по стандартным библиотекам. Да и IO потренировать не мешало бы, а то чувствую себя собакой - все понимаю, а сказать ничего не могу могу писать только код без side-эффектов.
fenikso: (Default)
Typeclassopedia - отличная статья с кучей ссылок на вкусности :)
fenikso: (red-eye frog)
Real World Haskell: Chapter 25. Profiling and optimization

хорошо написано, полезно для старта
fenikso: (Default)
geo a r = iterate (r*) a

и в бесточечной записи
geo' = flip (iterate . (*))
fenikso: (Default)
mf criteria operator list = filter criteria (map operator list)

превращается... превращается в

mf = (. map) . (.) . filter


// me добрался почитать про tacit programming в вики

Update: прочувствовал, что composition operator - он тоже из той же (страшной) сказки:
Prelude> :t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c
fenikso: (red-eye frog)
Придумалось: начинающий функциональный программист - это обезьяна с гранатой монадой.
fenikso: (Default)


и кстати да, читая свежий Haskell Communities and Activities Report, я не могу не согласиться с авторами комикса :)
fenikso: (red-eye frog)
Почитав RWH, начинаешь думать немного по-другому - забыл совершенно название функции, берущей список и вставляющей между всеми его элементами заданный элемент. Пришлось пойти логическим путем - у функции два аргумента: первый типа a, второй типа [a]. Возвращает тоже [a].

Т.е. тип функции: a -> [a] -> [a]

Первый же матч в Hoogle: функция intersperse.

Удобно...

p.s. Оно ещё и обратный порядок аргументов понимает.

Update: чуть скорректировал ссылки на матч и поисковик :)

Profile

fenikso: (Default)
Kyryl Bilokurov

May 2017

S M T W T F S
 123456
78910111213
141516 17181920
21222324252627
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2017 03:07 pm
Powered by Dreamwidth Studios