Alexander
мне казалось ещё где-то было
Alexander
tail чаще применяется
Alexander
4 hfpf
Alexander
раза
Антон
В копилку "на забывание": в разных источниках рекомендуется разное по поводу foldr, foldl и foldl'. Кажется, все из них сходятся, что foldl не стоит использовать, а насчет foldr и foldl' мнения расходятся.
Так, кхм, вроде ж ясно — если свёртка в скаляр, то foldl', если свёртка функцией, которая может вернуть результат, не вычисляя второй аргумент — foldr
Alexander
строгая функция foldl', ленивая по второму агрументу foldr
Alexander
при желании через foldr выражается все
Зигохистоморфный
Антон
при желании через foldr выражается все
Это да, и map в том числе. Производительность только аховая может быть
Alexander
ну map то в первую очередь через него выражается
Alexander
> "map" [~1] forall f xs. map f xs = build (\c n -> foldr (mapFB c f) n xs)
Alexander
собственно через него map и выражен
adam
при желании через foldr выражается все
Если что, то это уже метаморфичная парадигма
Alexander
если что это хорошее упражнение
Alexander
Data.List переписать в терминах foldr
Зигохистоморфный
катой их, катой
Denis
кого-то катоем обозвали
adam
Да вроде есть такая ката уже
Зигохистоморфный
Антон
я про cata
Слишком generic
Антон
И вообще, рекурсивные схемы — вещь полезная, но малость мозг выносят
Зигохистоморфный
Слишком generic
дерайвь их https://hackage.haskell.org/package/catamorphism
Зигохистоморфный
ну и https://github.com/Lysxia/generic-recursion-schemes
Alexander
я про cata
это следующее упражнение
IC
обычные схемки сами умеют дерайвить без этого всего
Зигохистоморфный
это следующее упражнение
на кодеварс есть ката про Мю/Ню)
Антон
IC
https://hackage.haskell.org/package/supermonad are those... superpipes?
Зигохистоморфный
https://hackage.haskell.org/package/supermonad are those... superpipes?
я пейпер помню про супермонаду)
Зигохистоморфный
О, кинь ссылку, плиз
https://www.codewars.com/kata/folding-through-a-fixed-point
Alexander
fmap mappend . sequence есть же что-то готовое для этого?
Alexander
mconcat вместо mappend
Зигохистоморфный
более обобщенно тогда fmap fold . sequence
Антон
https://www.codewars.com/kata/folding-through-a-fixed-point
Млин, это для меня слишком сложно
Зигохистоморфный
Млин, это для меня слишком сложно
пиши в личку, мб буду направлять
Alexander
я кстати вроде так и не прошёл её
Ilya
я кстати вроде так и не прошёл её
откуда вы эти каты берёте? где-то есть список?
Alexander
codewars же выше
Ilya
codewars же выше
я просто не регался. там сайт сам каты предлагает?
Alexander
там есть поиск и список и все такое
Alexander
каты = задачки на этом сайте
Зигохистоморфный
Alexander
регистрация через github
Ilya
по рангам
ты все ранги прошёл?:) по Haskell
Зигохистоморфный
Зигохистоморфный
немного первого уровня и второго
Alexander
1 и 2 же основные?
Антон
пиши в личку, мб буду направлять
Не надо. Я и с lensmaker не разобрался ещё
Зигохистоморфный
1 и 2 же основные?
ну ниже я не увидел смысла
Зигохистоморфный
Alexander
так блин как в этой дурацкой tasty передавать -p
Alexander
на каждом втором символе пишет что can't parse
IC
https://github.com/judah/pier новая сборочка. для тех, кто любит стакадж, но не стак.
Зигохистоморфный
тут недавно и такое было https://github.com/aisamanra/cab
Denis
треш какой-то
Maxim
> билд-тулза для хаскеля > написана на расте все что вам надо знать о
Alexander
о чем?
Maxim
а сами додумайте :)
Maxim
полиморфная шутка
Alexander
о программистах на расте?
Ilya
fmap mappend . sequence есть же что-то готовое для этого?
тип этой штуки такой f :: (Monad f, Monoid b) => [f b] -> f b кажется, что концептуально тут можно просто сделать mconcat, если будет подходящий инстанс instance (Monad f, Monoid m) => Monoid (f m) where mempty = return mempty mappend = liftM2 mappend Это скомпилировалось, но надо проверить законы. Для некоторых стандартных монад такие инстансы впрочем есть instance Monoid a => Monoid (Maybe a) -- Defined in ‘GHC.Base’ instance Monoid b => Monoid (a -> b) -- Defined in ‘GHC.Base’ проверил fmap mconcat . sequence === mconcat на парочке входов — результаты совпали.
IC
https://github.com/lyokha/nginx-haskell-module 🚎
Ilya
> билд-тулза для хаскеля > написана на расте все что вам надо знать о
ответочка: транслятор с сишки на раст писали на хаскеле.
Alexander
https://github.com/lyokha/nginx-haskell-module 🚎
кстати офигенный проект, он помню на fprog рассказывал
Alexander
да
Ilya
который corrode?
да, https://www.linux.org.ru/news/opensource/12988948
Антон
Напомните, которые векторы надо использовать (какие не текут)?
Антон
И ещё, какие есть заметные отличия Data.Vector и Data.Array (которые мутабельные)?
Антон
А то мне для решения прям именно мутабельный массив нужен, а я не знаю, что использовать
Alexander
из пакета vector
Alexander
там есть мутабельные, storable или unboxed не накапливают санки
Антон
из пакета vector
А чем это лучше, допустим, Data.Array.ST?
Alexander
оптимизациями, количеством функций, адекватностью интерфейса
Alexander
причин использовать array в 2!14 году нету
Антон
Alexander
у вектором могут быть проблемы со сверхспециализацией