167 karma · joined January 25, 2018
[1] cs.au.dk/~amoeller/spa
I'm most familiar with domain theory from Winskel's "Formal Semantics of Programming Languages" (great book, cited as Win93 in the linked PDF), which has a whole chapter on the subject with no reference to category theory.
If you get deeper into domain theory (e.g. by working through this book) surely some category theory will be useful, but it's not a foundational prereq.
I'm not on here to argue with people and it seems you have some sort of ideological bone to pick, so this is going to be my last reply. All the best
The main flaw, to me, is the 1:1 correspondence you draw between the magnitude of UBI-style benefits and cost of living. That may be true (at least under some simplified/idealized econ101 assumptions) if UBI was the sole source of money in the economy, but that's obviously not the case. The crux of the "UBI doesn't cause spiraling inflation" argument is that UBI accounts for a sufficiently small fraction of total incomes that its benefit (greater spending power for lower incomes, and the downstream economic benefits of that spending) outweighs its nonzero but noncrippling inflationary effect.
That is, though the $10 cash benefit you describe may of course increase COL, it does so by some amount between $0 and $10 that is influenced by all sorts of factors you're glossing over.
To an audience that _does_ speak theoretical CS, your sprinkling in of its terminology weakens whatever point you're trying to make and comes off instead as silly and pretentious.
FB uses a pretty wide array of languages internally -- I don't know if they release statistics publicly, but you can filter/search their open-source projects by language at https://opensource.fb.com/projects/#filter.
Your claims and arguments are against some imagined shitty union-like thing that does not much resemble an actual union.
I'm still waiting for mine to arrive (in the next batch) but I plan to install Manjaro when it does, and am cautiously optimistic that it'll be mostly painless.
[1] https://community.frame.work/t/arch-linux-on-the-framework-l... [2] https://wiki.archlinux.org/title/Framework_Laptop
Your comment sent me reading the HOPL paper about SML -- I think I (based on folklore knowledge/informal conversations) conflate the original development of ML with subsequent development and standardization around SML. All of this was well before my time so it's quite interesting to read about some of the details.
My impression (from the outside looking in) is that there weren't many people making use of those capabilities, so it wasn't a high priority feature. A bit of a shame, though -- it's a really cool tool and I enjoyed building some things on top of it. I switched to a different front-end, though, when I saw that they had removed those features and all mention of incrementality/differencing from the documentations.
I'd be happy to be wrong about this, if anyone has more up-to-date information about semantic!
The professor later spun up a startup that has since been acquired by Dropbox, but I'm unaware what kind of product they're currently working on.
This has a number of advantages vs. the `export` syntax used in Grain, too. Being able to look at one `.mli` file for a well-documented public interface is much easier than looking through a source file for what's been exported and what hasn't.
- `let` in a statement language (as opposed to let-binding expressions)
- comma-separating patterns (as opposed to using pipes to mimic BNF, also potentially causing confusion vs. tuple/record constructors)
- whitespace rather than semicolons for sequencing (though I'd imagine others might disagree on that front).
Some of that overlaps with Rust, to be sure -- I didn't pick up on those similarities at first.
This is a feature, not a bug -- getting the type of an arbitrary expression is two keystrokes away, but there's no visual clutter from excessive type annotations. And the tooling goes well beyond this one feature.
Working in OCaml without merlin+tuareg feels like having a hand tied behind your back (to me), so I feel your pain. This certainly raises the barrier to entry slightly, but I think it's worth it for the convenience and ergonomics once you're past that initial barrier.
Of course, that's all "just syntax" and not the end of the world.
Reason targets a similar use case* but, to me, makes a more sane set of syntactic choices and tradeoffs, while also having access to the whole OCaml ecosystem. I'm not sure why one would reach for Grain over that, though maybe I'm just not the target audience here.
* i.e. developers who want type safety, good inference, a familiar JS-ish syntax, and to target the web
edit: I see now that the compiler is built in Reason -- I'd imagine they've thought about these things and made considered choices on syntax!
If you do it right -- get a nice crust on there, don't overcook it, toast up some decent buns in butter and use good pickles, cheese, etc. -- it's every bit as flavorful and indulgent as a beef burger. (a decent one at least... you're not going to replicate the best of the best, nor should that really the goal)
I've been proselytizing these black bean burgers to anyone who'll listen for a while now -- they nail what you're describing.
https://www.seriouseats.com/the-food-lab-the-best-black-bean...
This is the post that originally coined that phrase.
There are transcripts available of all of the talks as well as Q&A sessions and the like -- really fascinating to look back on now with the benefit of hindsight.
For example, McCarthy was asked [1] whether he believed "that LISP has made any long-lasting contributions to the more 'normal' programming languages, e.g., FORTRAN and ALGOL, COBOL, etc."
He responded that, yes, he thought conditional expressions and recursion were here to stay. Safe to say he was right about that!