Well at the moment I just figured out two types:
- Usage the base languages recursion pattern --> Meta Interpreter
- Usage of FixPoints
Code: Alles auswählen
def interp(...) : ...{
...
case Rec(...) => interp(boundBody, cycBindAndInterp(boundId, namedExpr, env))
...
}
def cycBindAndInterp(...) = {
lazy val recEnv: Env = (id: Symbol) => {
if (id == boundId) interp(namedExpr, recEnv)
else env(id)
}
recEnv
}

But what are the other two types of recursion?
Greets
K.