Skip to content

Instantly share code, notes, and snippets.

package com.kinja.foo.bar
sealed trait Expr
case class Num(n: Int) extends Expr
case class Add(e1: Expr, e2: Expr) extends Expr
case class Sub(e1: Expr, e2: Expr) extends Expr
def value(e: Expr): Int = e match {
case Num(n) => n
case Add(e1, e2) => value(e1) + value(e2)
case Sub(e1, e2) => value(e1) - value(e2)
}
sealed trait Expr {
def value: Int
}
case class Num(n: Int) extends Expr {
def value = n
}
case class Add(e1: Expr, e2: Expr) extends Expr {
def value = e1.value + e2.value
}
case class Sub(e1: Expr, e2: Expr) extends Expr {
trait Value[T] {
def eval(e: T): Int
}
def value[T: Value](e: T) = implicitly[Value[T]].eval(e)
sealed trait Expr
case class Num(n: Int) extends Expr
def getSpeedByDistanceAndTime(x: Int, y: Int) = x / y
def speed(distance: Distance, time: Time) =
Speed(distance.value / time.value)
flag match {
case true => f()
case false => g()
}
if (flag) f() else g()
case class BlogMeta(
description: Option[String] = None,
descriptionHtml: Option[String] = None,
timezone: String = "America/New_York",
properties: Option[String] = None,
adminProperties: Option[String] = None,
showLikesInLatest: Option[Boolean] = None,
showRepliesInLatest: Option[Boolean] = None,
features: List[String] = List(),
groupBlog: Option[Boolean] = None)
list.map(f)
list.map { element =>
something()
f(element)
somethingElse()
}
list.map {
case Data(d) => f(d)