Skip to content

Instantly share code, notes, and snippets.

@jponge
Created April 4, 2011 21:03
Show Gist options
  • Save jponge/902435 to your computer and use it in GitHub Desktop.
Save jponge/902435 to your computer and use it in GitHub Desktop.
A sample with implicits in Scala.
object GlobalScope {
case class Person(val name:String) {
def --> (implicit func: Person => String): Unit = {
println(func(this))
}
}
implicit def string2person(name:String) = new Person(name)
def greet(p: Person): String = "Hello " + p.name + "!"
implicit def insult(p: Person): String = "Fuck you " + p.name
def decorate(d: String)(p: Person) = d + p.name + d
def run {
"Julien" --> greet
"Julien" --> insult
"Julien" --> decorate(" @@@ ")
"Julien" -->
}
}
GlobalScope.run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment