4 ms·
I agree. One thing that is sorely missing, for example, is a way to define recursive values. In Scala, to express a recursive parser combinator: val e = p | e
by hrjet 11y ago
I agree. One thing that is sorely missing, for example, is a way to define recursive values.
In Scala, to express a recursive parser combinator:
val e = p | e
You can't define such a thing in Kotlin. Atleast, this was the case the last time I looked at it.
- chrisseaton 11y agoWow can you really write val e = p | e in Scala? How does that work with eager evaluation?
- hrjet 11y agoIt's not eager. The | combinator takes lazy parameters (called pass-by-name in scala). So it essentially gets translated to: val e = operator_pipe(() => p, () => e) Note that the operator_pipe() itself returns a function, which gets assigned as a value to `e`. So there is lots of implicit laziness.