Skip to content

Instantly share code, notes, and snippets.

View yasuabe's full-sized avatar

Yasuyuki Abe yasuabe

View GitHub Profile
@yasuabe
yasuabe / ComposedFreeMain.scala
Created March 20, 2019 18:21
a composed free monads sample of Hammock with Apache HttpComponents Client and monix Task
package qiita_sample1
import cats.{InjectK, ~>}
import cats.effect.{ExitCode, Sync}
import cats.free.Free
import cats.syntax.either._
import iota.TListK.:::
import iota.{CopK, TNilK}
object Console {
@yasuabe
yasuabe / SimpleMain.scala
Last active March 20, 2019 18:14
a simple example of hammock http client with Cats Effect IO and Apache HttpComponents Client
package qiita_sample1
import cats.effect.{ExitCode, IO, IOApp}
import cats.free.Free
import hammock._
import hammock.apache.ApacheInterpreter
object SimpleMain extends IOApp {
val program: Free[HttpF, HttpResponse] = Hammock
.request(Method.GET, uri"http://httpbin.org/get", Map())
@yasuabe
yasuabe / publish_subscribe_test.scala
Created February 28, 2019 14:26
publish/subscribe with monix observable
package observable
import cats.effect.ExitCode
import monix.eval.{Task, TaskApp}
import monix.execution.Ack
import monix.execution.Ack.{Continue, Stop}
import monix.reactive.{Consumer, Observable, Observer}
import scala.concurrent.Future
import scala.concurrent.duration._
@yasuabe
yasuabe / Prob.scala
Created February 7, 2019 05:21
probability monad(from LYAHFGG) in scala
package ex01
import cats.Monad
import scala.annotation.tailrec
sealed trait Coin
case object Heads extends Coin
case object Tails extends Coin
@yasuabe
yasuabe / ConcurrentEffectDemo.scala
Created February 1, 2019 12:53
Cats Effect ConcurrentEffect example
package cats_effect_typeclass_exericise.concurrent_effect
import java.time.format.DateTimeFormatter
import cats.data.{Chain, EitherT, WriterT}
import cats.effect._
import scala.language.higherKinds
object Util {
@yasuabe
yasuabe / EffectDempApp.scala
Created February 1, 2019 12:51
Cats Effect Effect example
package cats_effect_typeclass_exericise.effect
import java.time.format.DateTimeFormatter
import cats.data.{Chain, WriterT}
import cats.effect._
import scala.language.higherKinds
object Util {
@yasuabe
yasuabe / ConcurrentDemoApp.scala
Created February 1, 2019 12:49
Cats Effect Concurrent examples
package cats_effect_typeclass_exericise.concurrent
import java.time.format.DateTimeFormatter
import java.util.concurrent.{ScheduledExecutorService, ScheduledFuture}
import cats.effect._
import scala.concurrent.duration._
import scala.language.higherKinds
@yasuabe
yasuabe / AsyncDemo.scala
Last active February 1, 2019 12:46
Cats Effect Async Demo
package cats_effect_typeclass_exericise.async
import java.time.format.DateTimeFormatter
import cats.data.IorT
import cats.effect._
import cats.instances.string._
import scala.concurrent.Future
import scala.language.higherKinds
@yasuabe
yasuabe / SyncDemo.scala
Created January 31, 2019 10:30
Cats Effect Sync demo
package cats_effect_typeclass_exericise.sync
import java.time.format.DateTimeFormatter
import cats.effect.{ExitCode, IO, IOApp, Sync}
import cats.instances.list._
import cats.syntax.parallel._
import cats.syntax.functor._
import cats.syntax.flatMap._
object Util {
@yasuabe
yasuabe / LiftIODemo.scala
Created January 31, 2019 04:54
sample code of Cats Effect LiftIO.liftIO
package cats_effect_typeclass_exericise.liftio
import java.time.format.DateTimeFormatter
import cats.data.{Chain, Kleisli, WriterT}
import cats.effect._
import scala.language.higherKinds
import scala.util.Try
import LiftIODemoUtil._
import cats.instances.either._