AT
fa.as(b)
в синтаксисе функтораSize: a a a
AT
fa.as(b)
в синтаксисе функтораλƒ
as(b: B)
AA
def printData[F[_] : Monad](data: List[String], pdfDoc: PdfDocument[F]): F[Unit] = {
if (data.isEmpty) {
pdfDoc.pure()
} else {
for {
_ <- pdfDoc.addText(data.head)
} yield {
printData(data.tail, pdfDoc)
}
}
}
fDocument[F] =
> PdfDocument[Future] в этом случаеVE
addText
возвращает F[Unit]?AA
М
data.traverse(pdfDoc.addText)
?VE
pdfDoc.addText(data.head) >> printData(data.tail, pdfDoc)
KS
flatMap
, так что способы и Михаила и Василия одинаково пригодныVE
VE
data.traverse(pdfDoc.addText)
?AA
P
case class Context(cats: Int, dogs: Int)
.MonadState[F, Context]
. И я хочу получить нужный MonadState[F, Int]
.meow-mtl
позволяет мне это сделать просто вызвав MonadState[F, Int]
, но он, как я понимаю, выбирает по типу, то есть я не могу выбрать dogs
это будет или cats
.cats
и dogs
во врапперы?λ
case class Context(cats: Int, dogs: Int)
.MonadState[F, Context]
. И я хочу получить нужный MonadState[F, Int]
.meow-mtl
позволяет мне это сделать просто вызвав MonadState[F, Int]
, но он, как я понимаю, выбирает по типу, то есть я не могу выбрать dogs
это будет или cats
.cats
и dogs
во врапперы?P
λ
VS
sql"".query.stream
VS
P
sql"".query.stream
λ
sql"".query.stream