4 ms·
Lots of languages can infer types. And your last example with the colors is just a dictionary.
by sfn42 9mo ago
Lots of languages can infer types. And your last example with the colors is just a dictionary.
- grumpyprole 9mo agoMost languages have poor support for structural types though. If you try and join two records together (like a SQL join), what will your favourite language infer then?
- sfn42 9mo agoC# has anonymous types which is pretty much the same thing. Though I prefer to declare actual types for most usecases, I'll only use anonymous types for intermediate results and such.
- grumpyprole 9mo agoI certainly don't mean to knock nominal types. But I think structural types are more fundamental. A language would only need a single "newtype" or "nominal" keyword to create nominal types from structural types.
- lock1 9mo agoWhy structural is more fundamental? C#'s anonymous type shares some flexibility of structural type system even though it still a nominal type. > A language would only need a single "newtype" or "nominal" keyword to create nominal types from structural types. I think you also can add `structural` keyword & apply structural type system in generally nominal type system as well if we're talking about adding feature.
- KellyCriterion 9mo agoClaude is "very good" in applying >var< continuously :-D
- sheept 9mo agodictionaries generally aren't guaranteed to contain an entry for every possible value of the key type. while you could implement the colors example with a dictionary, ideally you'd want the type system to assure that given a Color, there will be a string associated with it
- vips7L 9mo agoSounds like enums with extra steps.
- epolanski 9mo agoEnums aren't type safe in typescript
- vips7L 9mo agoSounds like a major flaw.
- socalgal2 9mo agoit’s Enuma associated with data without having to repeat yourself If you have to define the Enums in one place and then repeat them all in another just to associate data with each one you’ve failed
- vips7L 9mo agoMaybe you can elaborate but enums in Java or Kotlin easily have data associated with them. enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) }
- fuzzy2 9mo agoIt's not a dictionary (type-wise). "as const" is the magic ingredient.