← Back to context

Comment by jen20

20 hours ago

If Pascal doesn't have required exhaustive pattern matching, it's no better than Go or C# in this regard.

Go is the one being discussed as ignoring history.

C# thankfully was designed by someone that appreciates type systems, maybe you should revisit it.

  • Not enough to add sum types or exhaustive pattern matching... now F# - that was appreciated by someone that appreciates type systems.

Does Pascal's break down like this Go does?

    func f(x StatusCode) {
    }

    f(728347) // There's no such status. Whateverz, no compile error.

  • How often do you pass literals into your functions?

        f(728347) // There's no such status. Whateverz, no compile error.
        a := 728347
        f(a) // Compile error.

    • The nature of Swiss cheese is that it can't be all hole and there has to be some non-hole too