Skip to content

Instantly share code, notes, and snippets.

@stefanobaghino
Created April 2, 2015 23:22
Show Gist options
  • Save stefanobaghino/5bd528f7d5ba7fb6262e to your computer and use it in GitHub Desktop.
Save stefanobaghino/5bd528f7d5ba7fb6262e to your computer and use it in GitHub Desktop.
trait Greeter {
def greet(who: String): String =
s"hello, $who"
}
import scala.io.AnsiColor._
object Colorful {
def endlessRainbow: Stream[String] = RED #:: YELLOW #:: GREEN #:: CYAN #:: BLUE #:: endlessRainbow
}
trait Colorful {
import Colorful._
def colorize(message: String): String =
endlessRainbow.
zip(message).
flatMap {
case (color: String, char: Char) => s"$color$char"
}.mkString ++ RESET
}
trait ColorfulGreeter extends Colorful with Greeter {
val colorfulGreeting = greet _ andThen colorize _
}
object UnicornHello extends App with ColorfulGreeter {
println(colorfulGreeting("world"))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment