Alexander
точнее не так
Alexander
есть
data F = A s I | B [I]
Alexander
как собрать все I?
Cheese
plate разве не?
кана
у генерик-линз как раз есть ofType @I
Alexander
plate :: Traversal' a a
Alexander
не похоже, но вообще ответ где-то рядом с plated
Alexander
минимум *On надо
Alexander
хотя стоп
Alexander
я туплю, тут вообще plated не к месту
A64m
Prelude Control.Lens Data.Data.Lens> (1, Just 2) ^.. template :: [Integer]
[1,2]
A64m
это такой линзосиб, т.е. инстансы Data надо выводить
Leonid 🦇
/me стал убирать Types модули и получает удовольствие от результата (но не процесса)
Leonid 🦇
хотя конечно на других ЯП от процесса было бы так погано что результат бы себя не оправдал
Leonid 🦇
а как называть модули с бизнес рекордами?
Leonid 🦇
уж не Model же
Alexander
View
Alexander
сорри
Leonid 🦇
вот именно
A64m
каждый рекорд в свой модуль, модуль называть как рекорд, рекорд переименовать в T.
A64m
(шутка)
Leonid 🦇
дичь какая
A64m
так эмелисты делают
A64m
на хекедже есть пакеты с такой системой именования кстати
Anatolii
map f1 . catMaybes . map f2 должно же переводиться в catMaybes (f1 <$> f2) ?
Leonid 🦇
я чому не mapMaybe ( f1 <=< f2)
Евгений
Anatolii
Anatolii
без maybe
Leonid 🦇
ну тогда mapMaybe ( fmap f1 . f2 )
Anatolii
f1 :: b -> c
f2 :: a -> Maybe b
Leonid 🦇
:t \f1 f2 -> mapMaybe (fmap f1 . f2) (a1 -> b) -> (a2 -> Maybe a1) -> [a2] -> [b]
Зигохистоморфный
а с Nothing что делать будешь? у тебя же паршиал ответ
Зигохистоморфный
это я @anpryl
Anatolii
Anatolii
Зигохистоморфный
ага
Anatolii
f1 <$> f2 вот так просто поинтфри не получается
Leonid 🦇
ну еще бы
Leonid 🦇
хотя
Зигохистоморфный
fmap f1 . mapMaybe f2 мб так тогда
Anatolii
я незнаю почему я хотел так
Зигохистоморфный
или как-то fmap f1 . catMaybes . fmap f2 это нельзя вроде сфъюзить
Leonid 🦇
/me почесал бороду
:t \f1 f2 -> mapMaybe (f1 <$> f2) (a1 -> Maybe b) -> (a2 -> a1) -> [a2] -> [b]
Leonid 🦇
ну логично же. Functor (a -> b)
Leonid 🦇
вот так можно :)
:t \f1 f2 -> mapMaybe (fmap f1 <$> f2) (a1 -> b) -> (a2 -> Maybe a1) -> [a2] -> [b]
Anatolii
map f1 . mapMaybe f2
вот так в итоге записал
Leonid 🦇
есть оператор для (fmap.fmap) ?
Anatolii
«$»
Anatolii
mapMaybe (f1 <<$>> f2) .
Anatolii
во
Anatolii
Leonid 🦇
эээ. <<$>> - я только в biapplicative нашел как (.) с infixl 4
Anatolii
это universum
Leonid 🦇
Ааа.
Anatolii
λ: :t (<<$>>)
(<<$>>) :: (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
Leonid 🦇
ты уже переписал с identity на id?
Anatolii
нет, я захайдил id
Anatolii
потому что по всему проекту идти не охота
Anatolii
хотя погоди
Anatolii
я вот посмотрел - навреное переписал
Anatolii
но не помню:)
Leonid 🦇
вот почему кастомные прелюдии сосут
Anatolii
нет, все таки во многих модулях есть hiding id
Anatolii
ну тут коненчо прблема что это braking change с минорной версинй
Anatolii
я пока еще не определился насчет кастомных прелюдий
Anatolii
в universum сначала не было id, а было identity
Leonid 🦇
а что не так с id?
некоторые люди решили что id:: a -> a занимает слишком важные две буквы для вебни
Anatolii
а потом в минормно релизе его вернули
Leonid 🦇
и в своей прелюдии выпилили
Ilya
Ilya
лучше бы доллар выпилили :D
Leonid 🦇
Вебня-ориентед прелюдия
Leonid 🦇
А ничего поприличнее distributed-* так и не написали для межхаскельного сетевого взаимодействия?
Alexander
нет