Also, to say that this makes functions available to all people, and to immediately follow that with text such as "The reduction rules act on trees of higher degree, until they are binary" suggests that well, actually, this is only for PL gurus, not all people (and that's totally fine IMO, just don't use the word "democratizing")
Sidenote, you can't possibly claim that this site helps anyone understand anything about functions they didn't yet, right? I mean, it's cool, but it's not really easy to understand or anything.
Here is a (slightly provocative) thought: We developers were promised "first class functions" with functional programming languages. And it's true, you can pass them around like any other value! Cool. But first: What about inspecting those values? I can "look inside of" a number or string or array any day. But functions, I can only call. Huh, so an intensional view (not that anyone thinks that out loud) for all kinds of values, except functions. Yes sure, many languages do allow you do dig into functions. But it is all not the same as or as powerful as supporting it right down at the logic level! TC is also not first to do that. But IMO the most compact and practical calculus/language to do so, yet. Second, a practical example: We had "first class functions" for decades now. But where is our main stream config language (JSON etc) that has first class support for them? Of course the answer is: Because it remains tricky. In industry I've seen all sorts of work arounds, usually involving strings that get compiled/interpreted on the fly. Which usually means some amount of scary security, and no static guarantees whatsoever. With TC, a parser/runtime for arbitrary (but pure) functions is a few dozens lines of code. And thanks to being intensional, one can imagine type checking those functions at the time of loading the config, not only when executing! Concrete demo/blog post for exactly this is in the works.
So anyways, I do belive this enables truly fundamental shifts, hence "democratizing".
$ pil +
: (de blepis (x y) (+ x y]
-> blepis
: (car 'blepis)
-> ((x y) (+ x y))Unlike school, were you are thought to reproduce them apply them, fire and forget them.
Just because something is available, doesn't mean its democratic. Even in a democracy.
But we, together, also shape how words are used. Just because someone uses a word doesn’t mean we have to like it or accept the context. We certainly don’t have to blindly repeat it.
We all put this into practice. We choose to reinforce patterns we find useful. And ignore ones we don’t.
We don’t need to disempower ourselves by acting like we have no power over language.
As for me, I would rather democratize mean something meaningful. So when someone uses it for self-interested purposes, I try to call it out.
I’m not a stickler for no reason. It is because I care — the world is still only marginally and fleetingly democratic. I don’t want marketing speak to ooze into yet another domain. Instead, I want such efforts to cause eye-rolls and backpressure.
But, yes, I will grant the printing press “democratized” books. And the Internet “democratized” information. These kinds of societal breakthrough are worthy of the word. It also so happens that such broad empowerings mutually reinforce democracy.
I do not know what it would even mean to democratize functions. Functions just are. Can you democratize the number 5?
https://intage.us/articles/words/democratize/
> Remember, language is shaped by culture, and you are part of that culture. You do not have to abdicate responsibility. You have options.