3 ms·
Wow, a break yielding a value from within a loop is awesome! Do any other langs have that?
by ofek 9y ago
Wow, a break yielding a value from within a loop is awesome! Do any other langs have that?
- kibwen 9y agoI feel like this has to have precedent from somewhere, most likely from another expression-oriented language, but I can't seem to find one right now. I've checked the RFC expecting to see a discussion of precedence from other languages, but no luck so far.
- joshmarlow 9y agoIf you're using the loop macro, you can do it from Common Lisp (see [0]). (block outer (loop for i from 0 return 100) ; 100 returned from LOOP (print "This will print") 200) ==> 200 (block outer (loop for i from 0 do (return-from outer 100)) ; 100 returned from BLOCK (print "This won't print") 200) ==> 100 [0] - http://www.gigamonkeys.com/book/loop-for-black-belts.html http://www.gigamonkeys.com/book/loop-for-black-belts.html EDIT: I always do formatting wrong on here.
- msbarnett 9y agoSure, Ruby: x = (1..100).each do |i| if i > 9 break i end end Evaluating that gives > x => 10 You can also supply a value to next within a loop, which is occasionally useful
- matthewrudy 9y agoruby does this have code around my app doing things like: loop do code = random_string(6) break code unless code_already_used?(code) end