What is underneath a Scala program?
A Scala program is a tree of nested definitions. A definition may start with a keyword, definition's name, a classifier, and if it's a concrete definition, then also an entity to which that definition is bound. So the syntax is regular, just like any other programming language has keyword/name/classifier/bound-entity
. Let's take an example. We'll use Scala REPL to see how a simple Scala program is built. For that, let's import a Scala package named universe
:
scala> import scala.reflect.runtime.universe._ import scala.reflect.runtime.universe._
This import
clause brings all the definitions within the universe
package in scope. It means that the required functions we are going to use are in scope, and available for us to use. Then we'll use a reify
method, which returns an Expr
to construct tree
out of our simple Scala program expression. We passed a Scala class to our reify
method. Let's pretend that a Scala class encapsulates some members like a value...