# [Zig], <del>63</del> <del>66</del> 47 bytes <!-- language-all: lang-zig --> fn a()void{for(" "**'e')|_,i|{p("{d} ",.{i});}} [Try it online!](https://zigbin.io/cf5737) I've excluded the `@import()` boilerplate as it seems analogous to C's `#include`, which is excluded from other answers. If deemed necessary, I will add it back in. ## Explanation ``` const p = @import("std").debug.print; // Import the debugging print function fn a() void { for (" " ** 'e') |_, i| { p("{d} ",.{i}); } } ``` * `fn a() void` Declare a function which takes no parameters and returns nothing * `for () |_, i|` For every item in the array inside of `()`, iterate and capture the entree as `_` (a throwaway variable) and the index as `i` * `" " ** 'e'` Take the string (strings are slices, or pointer-arrays which know their length) and repeat it `'e'` (101) times * `**` Requires a little bit more more explanation I think: In Zig, there is the concept of "comptime" (compile time) and runtime. `**` is an operator which repeats any array literal or slice literal at comptime, because the resulting length is still known to the compiler. * `p("",.{});` Print to STDERR (I believe that's valid for this question, right?), the first argument is the formatting string, and the second is an "anonymous sctruct"/tuple with a variable number of arguments in it (Zig doesn't have var-args). * `"{d} "` The format string. Zig denotes `{}` as the formatting characters, with `d` meaning a digit in this case. [Zig]: https://ziglang.org/