スキルシート
- 氏名: 阿部靖幸
- 最寄り駅: 京急浦賀
保有資格等
※ [ ]内は取得年月、主なもののみ抜粋
技術系
- 認定スクラムマスター['13/10]
※ [ ]内は取得年月、主なもののみ抜粋
import cats.Order | |
import cats.collections.PairingHeap | |
import cats.instances.long._ | |
import PairingHeap.empty | |
type Longs = Stream[Long] | |
implicit val x: Order[Longs] = (x, y) => x.head compare y.head | |
def spin(start: Long, wheel: Longs): Longs = { | |
def cycle(ns: Longs): Longs = ns append cycle(ns) |
package trial1 | |
import cats.effect._ | |
import cats.instances.list._ | |
import cats.syntax.flatMap._ | |
import cats.syntax.functor._ | |
import cats.syntax.traverse._ | |
import com.sksamuel.elastic4s.circe._ | |
import com.sksamuel.elastic4s.http.search.SearchResponse | |
import com.sksamuel.elastic4s.http._ |
import scalaz.zio.{DefaultRuntime, IO, ZIO} | |
// domain layer ----------------------------------------------------------- | |
sealed trait AppError | |
case object NoValue extends AppError | |
case class Movie(id: Int, title: String) | |
trait MovieRepo { | |
def getMovie(id: Int): IO[AppError, Movie] |
package exercise.squants.with_circe | |
import eu.timepit.refined.types.string.NonEmptyString | |
import io.circe.parser.parse | |
import squants.market.{Money, Price} | |
import cats.syntax.either._ | |
import io.circe.refined._ | |
import io.circe._ | |
import io.circe.generic.auto._ | |
import squants.space.Volume |
package exercise.squants.with_pureconfig | |
import pureconfig.ConfigReader.Result | |
import squants.motion.Pressure | |
import pureconfig.module.squants._ | |
import pureconfig.generic.auto._ | |
import squants.Mass | |
import squants.thermal._ | |
import squants.space._ |
import squants.market.{JPY, MoneyContext, USD} | |
import squants.market.MoneyConversions._ | |
val rate = USD / 112.14.yen | |
// r: CurrencyExchangeRate = USD/JPY 112.14 | |
rate convert 10.dollars | |
// 1121.4 JPY | |
import squants.market.defaultMoneyContext |
// Analysis Patterns 3.1 | |
import squants.mass.MassConversions._ | |
val m1 = 185 pounds | |
// m1: Mass = 185.0 lb | |
val (q, u) = m1 toTuple // 必要なら数値と単位文字列に分けることもできる | |
// q: Double = 185.0 | |
// u: String = lb | |
import squants.market.MoneyConversions._ |
name := "squants_exercise" | |
version := "0.1" | |
scalaVersion := "2.12.8" | |
scalacOptions ++= Seq( | |
"-encoding", "utf8", | |
"-Xfatal-warnings", | |
"-Ypartial-unification", |
import ciris.{ConfigKeyType, ConfigSource} | |
// Coproduct | |
import shapeless.{:+:, CNil} | |
import ciris.generic._ | |
val gType = ConfigKeyType[String]("generic key") | |
ConfigSource.fromEntries(gType)("key" -> "5.0") | |
.read("key").decodeValue[Float :+: String :+: CNil].result | |
// Right(Inl(5.0)) |