Uniform function call syntax treats `fido.bark()` the same as `Dog::bark(fido)`.
This seems like a really nice way of representing methods in a language. Are there any downsides? There are plenty of languages without this.
miniblog.
Related Posts
Uniform function call syntax (UFCS) is nifty: I can write foo(x, y, z) or http://x.foo(y, z).
Dot syntax for calls works incredibly well for IDE completion. Are there any languages that explicitly offer UFCS so the IDE experience is better?
How do you randomly sample from non-uniform distributions? This is a common problem when computing random numbers.
TIL about rejection sampling, where you randomly sample within an area that includes the distribution, until you hit a value inside:
A wonderful video from 1995 introducing the Self language.
It demonstrates a uniform evaluation model, "direct" programming where you can modify object inheritance live, break apart GUIs and build new ones from methods, and even a cheesy CGI finish!
https://youtu.be/Ox5P7QyL774
