blob: b48b18572797cc8ebf787754e8206dded67dbcf3 [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE.md file.
const numbers = const <int>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
main() {
var closures = [];
for (int i in numbers) {
closures.add(() => i);
}
int sum = 0;
for (Function f in closures) {
sum += f();
}
// This formula is credited to Gauss. Search for "Gauss adding 1 to 100".
int expectedSum = (numbers.length - 1) * numbers.length ~/ 2;
if (expectedSum != sum) {
throw new Exception("Unexpected sum = $sum != $expectedSum");
}
}