From 185c431ef9e56b800a090bda0724e96e11e4de99 Mon Sep 17 00:00:00 2001 From: Christian Kleineidam Date: Wed, 8 Feb 2023 20:08:58 +0100 Subject: [PATCH] Remove unnecessary await Future.microtask(() --- bench/algorithm/coro-prime-sieve/1.dart | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/bench/algorithm/coro-prime-sieve/1.dart b/bench/algorithm/coro-prime-sieve/1.dart index bfea0535..2eb16e74 100644 --- a/bench/algorithm/coro-prime-sieve/1.dart +++ b/bench/algorithm/coro-prime-sieve/1.dart @@ -1,27 +1,26 @@ +// Based on a version by hanabi1224 and kevmoo +// Modified by Christian Kleineidam + import 'dart:async'; Future main(List arguments) async { - final n = arguments.isNotEmpty ? int.parse(arguments[0]) : 5; - var stream = StreamIterator(generate()); - for (var i = 0; i < n; i++) { + final n = arguments.isNotEmpty ? int.parse(arguments[0]) : 20; + StreamIterator stream = StreamIterator(generate()); + for (int i = 0; i < n; i++) { await stream.moveNext(); - final prime = stream.current; - print(prime); - stream = StreamIterator(filter(stream, prime)); + print(stream.current); + stream = StreamIterator(filter(stream, stream.current)); } } Stream generate() async* { - for (var i = 2;; i++) { - yield await Future.microtask(() => i); - } + for (int i = 2;; i++) {yield i;} } Stream filter(StreamIterator input, int prime) async* { while (await input.moveNext()) { - final i = input.current; - if (i % prime != 0) { - yield await Future.microtask(() => i); + if (input.current % prime != 0) { + yield input.current; } } }