Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Standard {
- module Algorithm {
- Flatten() {
- return function(range) {
- return function()[range := std.move(range), first := true, begin := decltype(range())->decay()] {
- if (first) {
- begin = range();
- first = false;
- }
- if (~begin) { return decltype((*begin)())->decay(Containers.None); }
- var := (*begin)();
- while(~var) {
- begin = range();
- if (~begin) return Containers.None;
- var = (*begin)();
- }
- return std.move(var);
- };
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement