Hacker News new | ask | show | jobs
by airstrike 2455 days ago
Thanks. Some of the syntax seems rather arbitrary, but maybe just to my layman eyes...

    var
      child: tuple[name: string, age: int]
but

    type
      Color = enum cRed, cBlue, cGreen
why not

    type
      Color = enum[cRed, cBlue, cGreen]
2 comments

Because a type declaration is declaring multiple identifiers. Each of the enum variants is a legal name.

The tuple declaration is declaring one identifier with multiple fields. The names of the field are only legal as, well, fields of the outer object.

A tuple is a product type, an enum is a sum type.