trampolines

Continuation passing style vs aggressively trimmed call stack?

I'm considering something like CPS for use in an interpreter for an actor based language. The function arguments are passed in an array of variants, and the continuation returned in the same array, so an simple function def add (x,y) => x + y so a call from the read/eval/loop would be print( add(7, 5) ) would on entry be [&add, x...

What is the standard way to optimise mutual recursion in F#/Scala?

These languages do not support mutually recursive functions optimization 'natively', so I guess it must be trampoline or.. heh.. rewriting as a loop) Do I miss something? UPDATE: It seems that I did lie about FSharp, but I just didn't see an example of mutual tail-calls while googling ...