``` // Asynchronous function Future<String> ...
# coroutines
t
Copy code
// Asynchronous function
Future<String> greeting(String name) async => return “Hello $name”;
final result = await greeting(”Someone”);
greeting().then(print);
// --
// Asynchronous generator
Stream<String> greetingSevenDwarfs() async* {
 const dwarfs = [’one’, ‘two’, '…’];

 for (final dwarf in dwarfs) {
   yield(dwarf)
 }
}
await for (final result in greetingSevenDwarfs()) {
 print(result);
}
greetingSevenDwarfs().listen(print);
// --
// Synchronous generator
Iterator<String> greetingSevenDwarfsSync() sync* {
 const dwarfs = [’one’, ‘two’, '…’];

 for (final dwarf in dwarfs) {
   yield(dwarf)
 }
}
for (final result in greetingSevenDwarfs()) {
 print(result);
}
greetingSevenDwarfs().forEach(print);
I was wondering if Kotlin has an equivalent to the code above.