β

Umka KwArgs

fn kwargs(p: struct{x: int; y: int; rot: real}) {
    printf("%d %d %g\n", p.x, p.y, p.rot)
}

fn main() {
    kwargs({x: 32, y: 32})
}

With the somewhat recent addition of struct type elision, we can do some cool tricks in Umka. One of these tricks is the kwargs parameters. Normally, we can't address a structure whose type we can't name. But with type elision the compiler already knows what type you are passing. The only limitation is that Umka doesn't support default values for struct fields. So the default value will always be zero initialized.

My friend Marek has originally came up with this idea, read his article on inferred literals here.

-*-