feat: add Sequence.each method for side-effect iteration without list creation
Add a new `each` method to the Sequence class that iterates over elements calling a provided function for each, serving as a side-effect-only alternative to `map` when the resulting list is not needed. This is particularly important for the upcoming change where `map` will return a new sequence instead of mutating in place, as demonstrated by updating the README and index examples to use `each` with Fiber.yield. Includes documentation in the Sequence API reference and three new test cases covering normal iteration, empty sequences, and non-function argument error handling.
This commit is contained in:
@@ -54,6 +54,13 @@ and counting the number of times the returned value evaluates to `true`.
|
||||
[1, 2, 3].count {|n| n > 2} // 1.
|
||||
[1, 2, 3].count {|n| n < 4} // 3.
|
||||
|
||||
### **each**(function)
|
||||
|
||||
Iterates over the sequence, passing each element to the given `function`.
|
||||
|
||||
:::dart
|
||||
["one", "two", "three"].each {|word| IO.print(word) }
|
||||
|
||||
### **join**(sep)
|
||||
|
||||
Returns a string representation of the list. The string representations of the
|
||||
|
||||
@@ -15,7 +15,7 @@ a familiar, modern [syntax][].
|
||||
}
|
||||
|
||||
var adjectives = new Fiber {
|
||||
["small", "clean", "fast"].map {|word| Fiber.yield(word) }
|
||||
["small", "clean", "fast"].each {|word| Fiber.yield(word) }
|
||||
}
|
||||
|
||||
while (!adjectives.isDone) IO.print(adjectives.call())
|
||||
@@ -52,4 +52,4 @@ If you like the sound of this, [give it a try][try]! Even better, you can
|
||||
[fibers]: fibers.html
|
||||
[embedding]: embedding-api.html
|
||||
[try]: getting-started.html
|
||||
[contribute]: contributing.html
|
||||
[contribute]: contributing.html
|
||||
|
||||
Reference in New Issue
Block a user