cats.data.WriterT
See theWriterT companion object
Attributes
- Companion
- object
- Source
- WriterT.scala
- Graph
-
- Supertypes
Members list
Value members
Concrete methods
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer: WriterT[Option, String, Int] = WriterT.liftF(Some(123))
scala> val wt: WriterT[Option, String, Int] = writer.tell("error")
res0: WriterT[Option, String, Int] = WriterT(Some((error,123)))
scala> val func = WriterT.liftF[Option, String, Int => List[Int]](Some(i => List(i)))
scala> val func2 = func.tell("log")
scala> wt.ap(func2)
res1: WriterT[Option, String, List[Int]] = WriterT(Some((logerror,List(123))))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val wr1 = WriterT.liftF[Option, String, Int](Some(123)).tell("456")
res0: WriterT[Option, String, Int] = WriterT(Some(456,123))
scala> wr1.bimap(_.toInt, _.show)
res1: WriterT[Option, Int, String] = WriterT(Some((456,123)))
Attributes
- Source
- WriterT.scala
Attributes
- Source
- WriterT.scala
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val wr1 = WriterT.liftF[Option, String, Int](Some(123)).tell("error")
res0: WriterT[Option, String, Int] = WriterT(Some(error,123))
scala> val func = (i:Int) => WriterT.liftF[Option, String, Int](Some(i * 2)).tell(i.show)
scala> wr1.flatMap(func)
res1: WriterT[Option, String, Int] = WriterT(Some((error123,246)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("hi")
scala> writer.foldLeft(456)((acc,v) => acc + v)
res0: Int = 579
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.Eval
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("hi")
scala> writer
| .foldRight(Eval.now(456))((v,c) => c.map(_ + v))
| .value
res0: Int = 579
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val wr1: WriterT[Option, String, Int] = WriterT.liftF(Some(123))
scala> val wr2 = wr1.tell("log...")
scala> wr2.imap(_ * 2)(_ / 2)
res0: WriterT[Option, String, Int] = WriterT(Some((log...,246)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer: WriterT[Option, String, Int] = WriterT.liftF(Some(123))
scala> val wt: WriterT[Option, String, Int] = writer.tell("error").tell(" log")
res0: WriterT[Option, String, Int] = WriterT(Some((error log,123)))
scala> wt.listen
res1: WriterT[Option, String, (Int,String)] = WriterT(Some((error log,(123,error log))))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val wr1: WriterT[Option, String, Int] = WriterT.liftF(None)
scala> val wr2 = wr1.tell("error")
res0: WriterT[Option, String, Int] = WriterT(None)
scala> wr2.map(_ * 2)
res1: WriterT[Option, String, Int] = WriterT(None)
scala> val wr3: WriterT[Option, String, Int] = WriterT.liftF(Some(456))
scala> val wr4 = wr3.tell("error")
scala> wr4.map(_ * 2)
res2: WriterT[Option, String, Int] = WriterT(Some((error,912)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val wr1 = WriterT.liftF[Option, String, Int](Some(123)).tell("quack")
res0: WriterT[Option, String, Int] = WriterT(Some(quack,123))
scala> wr1.mapBoth((s,i) => (s + " " + s, i * 2))
res1: WriterT[Option, String, Int] = WriterT(Some((quack quack,246)))
Attributes
- Source
- WriterT.scala
Modify the context F
using transformation f
.
Modify the context F
using transformation f
.
Example:
scala> import cats.data.WriterT
scala> import cats.arrow.FunctionK
scala> import cats.syntax.all._
scala> val optionWriter = WriterT.liftF[Option, String, Int](Some(123)).tell("log")
res0: WriterT[Option, String, Int](Some((log,123)))
scala> def toList[A](option: Option[A]): List[A] = option.toList
scala> val listWriter = optionWriter.mapK(FunctionK.lift(toList _))
res1: WriterT[List, String, Int](List((log,123)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(246)).tell("error")
res0: WriterT[Option, String, Int] = WriterT(Some((error,246)))
scala> writer.mapWritten(i => List(i))
res1: WriterT[Option, List[String], Int] = WriterT(Some((List(error),246)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("error")
scala> writer.reset
res0: WriterT[Option, String, Int] = WriterT(Some((,123)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(456)).tell("log...")
scala> writer.show
res0: String = Some((log...,456))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("log")
scala> writer.swap
res0: WriterT[Option, Int, String] = WriterT(Some((123,log)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, List[String], Int](Some(123))
scala> writer.tell(List("a","b","c")).tell(List("d","e","f"))
res0: WriterT[Option, List[String], Int] = WriterT(Some((List(a, b, c, d, e, f),123)))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("hi")
scala> writer.traverse[List,Int](i => List(i))
res0: List[WriterT[Option, String, Int]] = List(WriterT(Some((hi,123))))
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer: WriterT[Option, List[String], Int] = WriterT.liftF(Some(123))
scala> val wt: WriterT[Option, List[String], Int] = writer.tell(List("error"))
res0: WriterT[Option, List[String], Int] = WriterT(Some((List(error),123)))
scala> wt.value
res1: Option[Int] = Some(123)
Attributes
- Source
- WriterT.scala
Example:
Example:
scala> import cats.data.WriterT
scala> import cats.syntax.all._
scala> val writer: WriterT[Option, List[String], Int] = WriterT.liftF(Some(123))
scala> writer.tell(List("a","b","c")).written.getOrElse(Nil)
res0: List[String] = List(a, b, c)
Attributes
- Source
- WriterT.scala
In this article