# [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/