Size: a a a

Scala User Group

2020 February 21

ΛO

Λrtem Ohanjanyan in Scala User Group
не, не понял
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
ну есть метод, да
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
я могу делать Monad[M].pure
источник

λ

λoλdog in Scala User Group
это таиплкасс
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
но не могу просто pure
источник

λ

λoλdog in Scala User Group
потому что pure метод Applicative, а он в свою очередь таипкласс
источник

λ

λoλdog in Scala User Group
он зависит от твоей M
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
да, почему бы не сделать def pure[M[_]: Monad, A](a: A): M[A] = Monad[M].pure(a)
источник

λ

λoλdog in Scala User Group
зачем
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
который бы в зависимости от контекста находил нужное M
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Λrtem Ohanjanyan
Всем привет 👋
Изучаю cats, возник вопрос
Есть какая-то причина, по которой все любят extention методы (судя по документации и их существованию) вроде .pure, но нет обычных функций вроде
def pure[M[_]: Monad, A](a: A): M[A] = Monad[M].pure(a)
?
нет причины
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
ну, сделали же зачем-то extention методы зачем-то
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
чтобы можо было x.pure
источник

λ

λoλdog in Scala User Group
если ты откроешь ApplicativeOps
источник

λ

λoλdog in Scala User Group
то там так и написано
источник

λ

λoλdog in Scala User Group
def pure[F[_]](implicit F: Applicative[F]): F[A] = F.pure(a)
источник

KS

Kirill Shelopugin in Scala User Group
Λrtem Ohanjanyan
который бы в зависимости от контекста находил нужное M
Applicative[M].pure делает то же самое - находит в скоупе инстанс и вызывает на нём методы
источник

ΛO

Λrtem Ohanjanyan in Scala User Group
Kirill Shelopugin
Applicative[M].pure делает то же самое - находит в скоупе инстанс и вызывает на нём методы
ну он длиннее на название тайпкласса
источник

IA

Ivan Aristov in Scala User Group
Λrtem Ohanjanyan
ну он длиннее на название тайпкласса
Не для всех аппликативов есть монада
источник

KS

Kirill Shelopugin in Scala User Group
Здорово же, сразу видно, какой тайпкласс используется
источник