Make strings iterable over their code points.
I'm not sure why, but this also regresses perf: binary_trees - wren .......... 3290 0.30s 96.68% relative to baseline delta_blue - wren .......... 7948 0.13s 99.06% relative to baseline fib - wren .......... 3165 0.32s 95.90% relative to baseline for - wren .......... 8242 0.12s 96.00% relative to baseline method_call - wren .......... 5417 0.18s 78.74% relative to baseline Need to investigate.
This commit is contained in:
@@ -1,11 +1,33 @@
|
||||
^title Sequence Class
|
||||
^category core
|
||||
|
||||
An abstract base class for any iterable object. It provides a number of methods for working with sequences based on the core [iterator protocol](../control-flow.html#the-iterator-protocol).
|
||||
An abstract base class for any iterable object. Any class that implements the
|
||||
core [iterator protocol][] can extend this to get a number of helpful methods.
|
||||
|
||||
[iterator protocol]: ../control-flow.html#the-iterator-protocol
|
||||
|
||||
### **all**(predicate)
|
||||
|
||||
Tests whether all the elements in the list pass the `predicate`.
|
||||
Tests whether all the elements in the sequence pass the `predicate`.
|
||||
|
||||
Iterates over the sequence, passing each element to the function `predicate`.
|
||||
If it returns `false`, stops iterating and returns `false`. Otherwise, returns
|
||||
`true`.
|
||||
|
||||
:::dart
|
||||
[1, 2, 3].all {|n| n > 2} // False.
|
||||
[1, 2, 3].all {|n| n < 4} // True.
|
||||
|
||||
### **map**(transformation)
|
||||
|
||||
Creates a new list by applying `transformation` to each element in the
|
||||
sequence.
|
||||
|
||||
Iterates over the sequence, passing each element to the function
|
||||
`transformation`. Generates a new list from the result of each of those calls.
|
||||
|
||||
:::dart
|
||||
[1, 2, 3].map {|n| n * 2} // [2, 4, 6].
|
||||
|
||||
### **reduce**(function)
|
||||
|
||||
@@ -16,3 +38,13 @@ It is a runtime error to call this on an empty sequence.
|
||||
### **reduce**(seed, function)
|
||||
|
||||
Similar to above, but uses `seed` for the initial value of the accumulator. If the sequence is empty, returns `seed`.
|
||||
|
||||
### **where**(predicate)
|
||||
|
||||
Produces a new list containing only the elements in the sequence that pass the
|
||||
`predicate`.
|
||||
|
||||
Iterates over the sequence, passing each element to the function `predicate`.
|
||||
If it returns `true`, adds the element to the result list.
|
||||
|
||||
(1..10).where {|n| n % 2 == 1} // [1, 3, 5, 7, 9].
|
||||
|
||||
Reference in New Issue
Block a user