Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
Which is why this kata should not be translated to some languages.
Actually, no... I don't think what you're describing is quite what I was thinking of originally. But whatever its behavior is, it makes sense.
The difference, I guess, is that in the stack-popping model,
before
doesn't always propagate pastlambda
. It only affects variable accesses that would be "free" if the thing insidebefore
stood as an expression on its own.Ah, that makes sense. I was thinking about something like that. What you describe seems equivalent to propagating an extra
before
into each variable expression, which I had considered but dismissed as too ad hoc. Your explanation makes much clearer what's going on and why this is sensible behavior. Thanks!While
before (lambda here)
is perhaps sensibly disallowed, it actually does have a sensible interpretation too. If you think of de Bruijn indices as providing a "stack" of arguments in context thenbefore
pops the stack before continuing into a subexpression. So, for instanceIn other terms,
before
will "shield" a subexpression from one level of context.I'm a little confused about the interface described in
Language
-- it seems to indicate that nonsensical programs such asbefore (lambda here)
are allowed, and the example tests don't say anything about such programs. Do I need to read the paper to figure out how to handle these, or are they just supposed to crash?This comment is hidden because it contains spoiler information about the solution