58 lines
1.2 KiB
Text
58 lines
1.2 KiB
Text
/**
|
|
* A person has a name and an age.
|
|
*/
|
|
case class Person(name: String, age: Int)
|
|
|
|
abstract class Vertical extends CaseJeu
|
|
case class Haut(a: Int) extends Vertical
|
|
case class Bas(name: String, b: Double) extends Vertical
|
|
|
|
sealed trait Ior[+A, +B]
|
|
case class Left[A](a: A) extends Ior[A, Nothing]
|
|
case class Right[B](b: B) extends Ior[Nothing, B]
|
|
case class Both[A, B](a: A, b: B) extends Ior[A, B]
|
|
|
|
trait Functor[F[_]] {
|
|
def map[A, B](fa: F[A], f: A => B): F[B]
|
|
}
|
|
|
|
// beware Int.MinValue
|
|
def absoluteValue(n: Int): Int =
|
|
if (n < 0) -n else n
|
|
|
|
def interp(n: Int): String =
|
|
s"there are $n ${color} balloons.\n"
|
|
|
|
type ξ[A] = (A, A)
|
|
|
|
trait Hist { lhs =>
|
|
def ⊕(rhs: Hist): Hist
|
|
}
|
|
|
|
def gsum[A: Ring](as: Seq[A]): A =
|
|
as.foldLeft(Ring[A].zero)(_ + _)
|
|
|
|
val actions: List[Symbol] =
|
|
'init :: 'read :: 'write :: 'close :: Nil
|
|
|
|
trait Cake {
|
|
type T;
|
|
type Q
|
|
val things: Seq[T]
|
|
|
|
abstract class Spindler
|
|
|
|
def spindle(s: Spindler, ts: Seq[T], reversed: Boolean = false): Seq[Q]
|
|
}
|
|
|
|
val colors = Map(
|
|
"red" -> 0xFF0000,
|
|
"turquoise" -> 0x00FFFF,
|
|
"black" -> 0x000000,
|
|
"orange" -> 0xFF8040,
|
|
"brown" -> 0x804000)
|
|
|
|
lazy val ns = for {
|
|
x <- 0 until 100
|
|
y <- 0 until 100
|
|
} yield (x + y) * 33.33
|