1
0
Fork 0
mirror of https://github.com/ratfactor/ziglings synced 2024-05-04 16:46:04 +02:00
ziglings/exercises/086_async3.zig
2021-05-24 15:57:59 -04:00

30 lines
645 B
Zig

//
// Because they can suspend and resume, async Zig functions are
// an example of a more general programming concept called
// "coroutines". One of the neat things about Zig async functions
// is that they retain their state as they are suspended and
// resumed.
//
// See if you can make this program print "5 4 3 2 1".
//
const print = @import("std").debug.print;
pub fn main() void {
const n = 5;
var foo_frame = async foo(n);
???
print("\n", .{});
}
fn foo(countdown: u32) void {
var current = countdown;
while (current > 0) {
print("{} ", .{current});
current -= 1;
suspend {}
}
}