Comment

Comment by kazinator

cyarvin: As Dijkstra said: "the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise."

So, for instance, Urbit has three abstract concepts matching the word "type", as normally used: "span" (set of nouns), "mold" (constructor), and "mark" (external/MIME type). It's not just that it's confusing to assign the word "type" arbitrarily to one of these (it will still be used indiscriminately for all, and is).

Yes, it would be confusing to assign the word "type" to these concepts. Which is why we don't do that! We use "constructor" for an operation that instantiates a type, "external representation" ("printed rep", etc) for how we encoded it for storage and transport, and "domain" for the set of values belonging to a data type.

parent kazinator 10 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton