deniok: (ухмыляюсь)
[personal profile] deniok
В стандартной библиотеке (Data.Foldable) имеется функция
> :t asum
asum :: (Alternative f, Foldable t) => t (f a) -> f a
> asum [Nothing, Just 1, Just 2]
Just 1
> asum [[1,2,3],[4,5]]
[1,2,3,4,5]
Можете ли вы написать afold с естественной для своего типа семантикой:
> :t afold
afold :: (Alternative f, Foldable t) => t a -> f a
>  afold "abc" :: Maybe Char
Just 'a'
>  afold "abc" :: [Char]
"abc"
Я знаю три решения: кривое (требующее FlexibleInstances и IncoherentInstances), обычное (утилизирующее избыточно богатый интерфейс Foldable) и современное, элегантно выпрямляющее кривизну кривого.

Date: 2016-07-29 03:36 pm (UTC)
From: [identity profile] kodt-rsdn.livejournal.com
Где можно взять волшебной травы, чтобы узреть современное состояние хаскела? А то совсем от жизни отстал.

Date: 2016-07-29 08:31 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
В октябре-ноябре на степике запустим вторую часть курса, с рабочим названием "Haskell: интерфейсы для вычислений с эффектами". Но можно самостоятельно поизучать, например, библиотеку lens.

Date: 2016-07-29 09:13 pm (UTC)
From: [identity profile] kurilka.livejournal.com
О, здорово, а нет примерной программы курса в каком-нибудь виде?

Date: 2016-07-30 10:36 am (UTC)
From: [identity profile] deni-ok.livejournal.com
1. Аппликативные функторы

1.1 Определение аппликативного функтора
1.2 Представители класса типов Applicative
1.3 Аппликативные парсеры (возможно 2 урока?)
1.4 Композиция на уровне типов

2. Управление эффектами

2.1 Класс типов Foldable
2.2 Класс типов Traversable
2.3 Связь классов Monad и Applicative
2.4 Классы типов Alternative и MonadPlus
2.5 Монада Except
2.6 Монада Cont ??

3. Трансформеры монад

4. Линзы

5. Что-то еще

Первые два модуля готовы в смысле видео, но задачки пока не вставляли.

Date: 2016-09-22 07:31 pm (UTC)
From: [identity profile] lelf.livejournal.com
asum . map pure . toList — это какое из них?

Date: 2016-09-25 04:07 am (UTC)
From: [identity profile] deni-ok.livejournal.com
Второе.

Profile

deniok: (Default)
deniok

April 2017

S M T W T F S
      1
23 45678
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 02:52 pm
Powered by Dreamwidth Studios