I think with CLOS, you can go back to using single verbs for function names. However, this has a performance cost. Encoding the receiver type in the function names makes the call much easier to optimize.
What remains is field access. Curiously, first-edition K&R C actually required similar type-encoding in field names because field names were global:
Same for ML, which is roughly of the same age, except that it took much longer for ML-derived languages to lift this restriction.
On the other hand, every time I wrote down examples that I think should look really bad in prefix notation, like this one:
p3.x := (p1.x + p2.x) / 2;
It is actually not so terrible with a sufficiently streamlined prefix syntax:
(setf x p3 (/ (+ (. x p1) (. x p2)) 2))
But maybe there should be a mechanism that the reader transforms p1.x to (. x p1), in the same way that it transforms 's into (quote s). Then we get this:
(setf x p3 (/ (+ p1.x p2.x 2)))
Or if there is a concept of a place:
(set p3.x (/ (+ p1.x p2.x 2)))
But that probably needs static typing for an efficient implementation (or set needs to deconstruct its first argument during compilation).
whartung · · focus · HN ↗
Consider:
Now imagine if we had some "lower weight" glyph besides the paren. Obviously a contrived example replacing () with ., but you can see how "heavy" the parens and how they can dominate what the eye sees.With experience, the parens vanish. The parens being large and common take control of the conversation more than they should.
Avshalom · · focus · HN ↗
fweimer · · focus · HN ↗
What remains is field access. Curiously, first-edition K&R C actually required similar type-encoding in field names because field names were global:
<a href="https://usenet.trashworldnews.com/?thread=288637" rel="nofollow">https://usenet.trashworldnews.com/?thread=288637
Same for ML, which is roughly of the same age, except that it took much longer for ML-derived languages to lift this restriction.
On the other hand, every time I wrote down examples that I think should look really bad in prefix notation, like this one:
It is actually not so terrible with a sufficiently streamlined prefix syntax: But maybe there should be a mechanism that the reader transforms p1.x to (. x p1), in the same way that it transforms 's into (quote s). Then we get this: Or if there is a concept of a place: But that probably needs static typing for an efficient implementation (or set needs to deconstruct its first argument during compilation).