Size: a a a

2020 December 29

SI

Serghei Iakovlev in Haskell
вопрос: есть на примете что-то убийственно простое по типам и классам типов в фп?  чувака из ооп мира привожу в фп ))  он застрял щас на этой теме, тяжело дается. я ему дал Хаскел во имя добра

в идеале, нужно что-то в таком формате и такое же доходчевое как вот эта статья только по типам и классам https://habr.com/ru/post/183150/

может что-то есть на примете простое?
источник

MK

Maxim Koltsov in Haskell
поищи посты @ybogomolov на хабре, наверное
там всякое на ТС показывается
источник

SI

Serghei Iakovlev in Haskell
у него на хабре 3 статьи
источник

ЮБ

Юрий Богомолов... in Haskell
Serghei Iakovlev
вопрос: есть на примете что-то убийственно простое по типам и классам типов в фп?  чувака из ооп мира привожу в фп ))  он застрял щас на этой теме, тяжело дается. я ему дал Хаскел во имя добра

в идеале, нужно что-то в таком формате и такое же доходчевое как вот эта статья только по типам и классам https://habr.com/ru/post/183150/

может что-то есть на примете простое?
dev.to/gcanti + Mostly Adequate Guide to Functional Programming (гуглится, ссылок не даю, т.к. оффтоп)
источник

SI

Serghei Iakovlev in Haskell
спасибо
источник

KV

Kirill Valyavin in Haskell
Надо бы записать каст без пояснений с lens-aeson трюкачеством, чтобы у начинающих не складывались ложные впечатления о типизации
источник

Y

Yuuri in Haskell
Kirill Valyavin
let adjoinAll = 
 cloneTraversal
 . foldl1 (\t1 t2 -> adjoin (cloneTraversal t1) (cloneTraversal t2)) in
"{\"a\":1,\"b\":2}" & partsOf (_Value . (adjoinAll [ix "a", ix "b"]) . _Number) .~ [2,3]

Короче надо было вот так
\t1 t2 -> adjoin (cloneTraversal t1) (cloneTraversal t2) это, кстати,
adjoin `on` cloneTraversal
источник

KV

Kirill Valyavin in Haskell
Yuuri
\t1 t2 -> adjoin (cloneTraversal t1) (cloneTraversal t2) это, кстати,
adjoin `on` cloneTraversal
Ага, я привык не пользваться этой штукой, потому что она часто типы ломает
источник

Y

Yuuri in Haskell
Как ломает?
источник

KV

Kirill Valyavin in Haskell
Yuuri
Как ломает?
Оно заставляет аргументы быть одинакового типа, тогда как запись лямбдой оставляет место для ад-хок полиморфизма
источник

AA

A64m AL256m qn<co... in Haskell
вообще чет не помню нормального объяснения тайпклассов ни в каких учебниках, только в пейпере "как сделать ад-хок полиморфизм менее ад-хок"
источник

AA

A64m AL256m qn<co... in Haskell
алг-тд вообще не помню чтоб где-нибудь видел
источник

IK

Ilya Kos in Haskell
А есть класс функтора по произвольному параметру, а не по последнему?
источник

к

кана in Haskell
не помню таких, думаю проще ньютайп запилить для функтора
источник

IK

Ilya Kos in Haskell
кана
не помню таких, думаю проще ньютайп запилить для функтора
Ну тогда уж проще отдельную функцию для каждого параметра завести
источник

к

кана in Haskell
по поводу ньютайпов, захотелось мне ньютайп-семейств, которые будут иметь такой же синтаксис как в (3), но по смыслу быть 1+2
источник

к

кана in Haskell
блин нет, на этом примере это совсем не нужно, я хотел сделать с другой стороны, чтобы On2 позволял делать функтор для x в
f a x
f a x b
f a x b c
...

и потом просто

fmap f (On2 x)

для любого такого f
источник

к

кана in Haskell
On2 нужно тоже перегрузить, мб паттерн-синонимами
источник

AA

A64m AL256m qn<co... in Haskell
Ilya Kos
А есть класс функтора по произвольному параметру, а не по последнему?
для каждого номера параметра по классу в lens и один для любого в generic-lens
источник

IK

Ilya Kos in Haskell
Какой каноничный Integer -> ByteString?
источник