1234567891011121314151617181920212223242526272829 |
- //
- // 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;
- }
- }
|