This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import MyErrsIO.Controller.{Request, postTransfer} | |
import MyErrsIO.Models.Account | |
import cats.data.Validated.{Invalid, Valid} | |
import cats.data.{EitherT, OptionT, Validated, ValidatedNec} | |
import cats.effect._ | |
import cats.implicits._ | |
import scala.util.control.NonFatal | |
// A simple example of cat-effect and error handling, with MonadTransformers |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cats._ | |
object TreeFunctorExample { | |
def main(args: Array[String]): Unit = { | |
sealed trait Tree[+T] | |
case class Leaf[+T](value: T) extends Tree[T] | |
case class Branch[+T](value: T, left: Tree[T], right: Tree[T]) extends Tree[T] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
object Intersect extends App{ | |
import scala.annotation.tailrec | |
// finds the elements shared by 2 lists, FP style, recursively | |
// O(n log n) | |
@tailrec | |
def scan(x: List[Int], y: List[Int], out: List[Int] = List.empty[Int]): List[Int] = | |
(x, y) match { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.annotation.tailrec | |
/** width by height grid | |
starting top left | |
how many ways to travel to bottom right? | |
can only go right or down | |
3 methods shown | |
**/ | |
object WaysToTraverseGrid extends App{ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// NumberToWords converts an Int into English words | |
object NumberToWords extends App{ | |
val num2Word=Map((0, "Zero"), (1, "One"), | |
(2, "Two"), (3, "Three"), | |
(4, "Four"), (5, "Five"), | |
(6, "Six"), (7, "Seven"), | |
(8, "Eight"), (9, "Nine"), | |
(10, "Ten"), (11, "Eleven"), |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Top and bottom N max/min items from an Array, with no need to sort | |
object TopBottomN extends App { | |
def bottomN(a: Array[Int], n: Int): Array[Int] = { | |
val smallestVals = Array.fill(n)(Int.MaxValue) | |
a.foreach { number => | |
var inserted=false | |
(n - 1 to 0 by -1).foreach { pos => |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def css = Action { | |
val css: TxtFormat.Appendable =views.txt.css() | |
Ok(css).as("text/css") | |
} | |
inside HTML | |
<link rel="stylesheet" href="@routes.HomeController.css()"/> | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
implicit object NullBooleanReads extends Reads[Boolean] { | |
def reads(json: JsValue): JsSuccess[Boolean] = json match { | |
case JsBoolean(b) => JsSuccess(b) | |
case _ => JsSuccess(false) | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cats._ | |
import cats.implicits._ | |
// Cats SemigroupK vs Semigroup | |
object CatsSemigroupK extends App { | |
// semigroupK doesn't care about contents |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cats._ | |
import cats.implicits._ | |
// Example usage of Cats Flatmap | |
object CatsFlatmap extends App { | |
val listFlatMap=FlatMap[List] | |
val li=List(1,2,3) |