Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(726)

Side by Side Diff: corelib/src/implementation/collections.dart

Issue 10827293: Reapply 'Add reduce to Collection.' (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add fixes. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * The [Collections] class implements static methods useful when 6 * The [Collections] class implements static methods useful when
7 * writing a class that implements [Collection] and the [iterator] 7 * writing a class that implements [Collection] and the [iterator]
8 * method. 8 * method.
9 */ 9 */
10 class Collections { 10 class Collections {
(...skipping 17 matching lines...) Expand all
28 return true; 28 return true;
29 } 29 }
30 30
31 static List map(Iterable source, List destination, f(o)) { 31 static List map(Iterable source, List destination, f(o)) {
32 for (final e in source) { 32 for (final e in source) {
33 destination.add(f(e)); 33 destination.add(f(e));
34 } 34 }
35 return destination; 35 return destination;
36 } 36 }
37 37
38 static Dynamic reduce(Iterable iterable,
39 Dynamic initialValue,
40 Dynamic combine(Dynamic previousValue, element)) {
41 for (final element in iterable) {
42 initialValue = combine(initialValue, element);
43 }
44 return initialValue;
45 }
46
38 static List filter(Iterable source, List destination, bool f(o)) { 47 static List filter(Iterable source, List destination, bool f(o)) {
39 for (final e in source) { 48 for (final e in source) {
40 if (f(e)) destination.add(e); 49 if (f(e)) destination.add(e);
41 } 50 }
42 return destination; 51 return destination;
43 } 52 }
44 53
45 static bool isEmpty(Iterable iterable) { 54 static bool isEmpty(Iterable iterable) {
46 return !iterable.iterator().hasNext(); 55 return !iterable.iterator().hasNext();
47 } 56 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 * Returns true if the specified collection contains the specified object 146 * Returns true if the specified collection contains the specified object
138 * reference. 147 * reference.
139 */ 148 */
140 static _containsRef(Collection c, Object ref) { 149 static _containsRef(Collection c, Object ref) {
141 for (var e in c) { 150 for (var e in c) {
142 if (e === ref) return true; 151 if (e === ref) return true;
143 } 152 }
144 return false; 153 return false;
145 } 154 }
146 } 155 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698