(no title)
flinkerflitzer | 1 year ago
I'll link that post for reference: https://www.reddit.com/r/ProgrammingLanguages/comments/1fb5y...
The gist (hehe) was that a full lambda expression in a `passes` case could often feel like overkill. This was the possible solution I suggested:
What I could do is similar to what you suggested in another comment and similar to what C# does, where I add a third type of case that implicitly substitutes the control expression into a longer expression. Something like this, tentatively using the keyword `matches`:
int x = rand(0, 11);
when (x + 2) {
matches _ < 5 || _ > 9 -> { /* body */ }
}
Here is a structural matching example: orientation(image img -> string) {
when (img) {
matches _.width == _.height -> return "square";
matches _.width > _.height -> return "landscape";
otherwise -> return "portrait";
}
}
No comments yet.