Skip to content

Instantly share code, notes, and snippets.

@pjazdzewski1990
Created February 25, 2016 09:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjazdzewski1990/49feded230909c07deb5 to your computer and use it in GitHub Desktop.
Save pjazdzewski1990/49feded230909c07deb5 to your computer and use it in GitHub Desktop.
import scala.language.experimental.macros
import scala.reflect.api.Trees
import scala.reflect.macros.blackbox
sealed trait Component {
def toTree(implicit c: blackbox.Context): c.Tree
def derive: Component
}
object Scalac {
private def extractComponents(tree: Trees#Tree)(implicit c: blackbox.Context): List[Component] = ???
def derivative(f: Double => Double): Double => Double = macro derivativeImpl
def derivativeImpl(c: blackbox.Context)
(f: c.Expr[Double => Double]): c.Expr[Double => Double] = ???
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment