1
0
forked from Mirror/wren

Merge pull request #239 from bjorn/sequence_list

Added Sequence.list
This commit is contained in:
Bob Nystrom
2015-03-28 09:06:49 -07:00
4 changed files with 34 additions and 0 deletions

View File

@ -90,6 +90,14 @@ class Sequence {
return result
}
list {
var result = new List
for (element in this) {
result.add(element)
}
return result
}
}
class String is Sequence {

View File

@ -65,6 +65,13 @@ It is a runtime error if `sep` is not a string.
Calls `join` with the empty string as the separator.
### **list**
Creates a [list](list.html) containing all the elements in the sequence.
:::dart
(1..3).list // [1, 2, 3]
### **map**(transformation)
Creates a new list by applying `transformation` to each element in the

View File

@ -136,6 +136,14 @@ static const char* libSource =
"\n"
" return result\n"
" }\n"
"\n"
" list {\n"
" var result = new List\n"
" for (element in this) {\n"
" result.add(element)\n"
" }\n"
" return result\n"
" }\n"
"}\n"
"\n"
"class String is Sequence {\n"

View File

@ -0,0 +1,11 @@
class TestSequence is Sequence {
iterate(iterator) {
if (iterator == null) return 1
if (iterator == 3) return false
return iterator + 1
}
iteratorValue(iterator) { iterator }
}
IO.print((new TestSequence).list) // expect: [1, 2, 3]