Skip to content

Instantly share code, notes, and snippets.

@derekmorr
derekmorr / gist:dd2ae28fdd5aced2d727
Created July 9, 2015 03:34
Structural typing in Scala
case class Circle(radius: Double) {
def area = radius * radius * Math.PI
}
case class Rectangle(side: Double) {
def area = side * side
}
case class Triangle(base: Double, height: Double) {
def area = 0.5d * base * height
@derekmorr
derekmorr / gist:350553c45beac5ff0241
Last active August 29, 2015 14:14
F# examples translated to Scala
val r = (42, "Hello")
val (num, str) = r
case class Product(name: String, price: Float)
val p = Product("Test", 128.8f)
val p2 = p.copy(name = "Another")
val p3 = Product("Test", 128.8f)
// structural comparision of case classes
p == p3