Advertisement
Guest User

Untitled

a guest
May 25th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. module Standard {
  2. module Algorithm {
  3. Flatten() {
  4. return function(range) {
  5. return function()[range := std.move(range), first := true, begin := decltype(range())->decay()] {
  6. if (first) {
  7. begin = range();
  8. first = false;
  9. }
  10. if (~begin) { return decltype((*begin)())->decay(Containers.None); }
  11. var := (*begin)();
  12. while(~var) {
  13. begin = range();
  14. if (~begin) return Containers.None;
  15. var = (*begin)();
  16. }
  17. return std.move(var);
  18. };
  19. };
  20. }
  21. }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement