upvote
That is why Iverson invented APL. As a notation to get rid of all those inconsistencies in math notation. And for years he taught math classes with APL on the blackboard without computers.

whether he succeeded, is debatable. But APL is definitely powerful, succinct and "regular".

In APL you don't infer the operation from the types at all. × is elementwise, +.× is inner product /always/, on scalars, vectors, matrices, whatever. The glyph tells you what happens. Nothing is bold, nothing is inferred, nothing depends on what your professor assumed you'd absorbed.

I've been trying to get into Iversonian languages myself with the book: Calculous on J

reply
hi, would you mind linking to the book?

https://www.jsoftware.com/help/learning/23.htm is the closest i've found, but wondering if i'm missing something perhaps, Julia?

tyvm

reply
For something like APL modulo the Unicode symbols:

https://t3x.org/klong/

reply
I mean, unfortunately being completely explicit and pedantic does not scale.

Imagine that instead of being able to use high-level programming languages, you had to write in assembly everywhere, all the time.

That's what software engineers and computer scientists' suggestions of redoing mathematical notation fee like to mathematicians.

These efforts also don't go anywhere because research mathematics moves beyond elementary arithmetic very quickly, and once you're there, "descriptive" notation becomes as incomprehensible as whatever mathematicians use.

reply
My favorite moment of this kind was when the teacher said 'Ok, and for the rest of the course we will look at a completely different problem', and the equation he wrote down was exactly the same as before. Except that the letters referred to vectors/matrices now.
reply
Aye.

A decade or so ago I wondered if the reason maths was hard was the names being optimised for writing by hand. Everything's single letters if they can get away with it, so when mathematicians run out of Latin alphabet, they use Greek, bold, etc.

Even integration's ∫ is a fancy elongated s.

CS version would be e.g. integral(function=some_named_function, from=a, to=b, with_respect_to=argument_of_function), which may be longer, but is less opaque, especially when you get in so deep there's 3 other people in the world who've looked into this specific problem and you had to invent your own operations.

But that's all an outsider's perspective. I stopped with two A-levels in maths and further maths.

reply
Nope, math notations are optimized for reading, not writing (consider that people still use symbols on computers despite it being quite a bit more tedious to type). The conciseness makes it easier for you to see structural patterns and do symbolic manipulation in your mind's eye. Even something basic like the wave equation would become completely illegible with an expanded notation like that.

Same reason why we write 5-3, not subtract(minuend=five, subtrahend=three).

reply
For those of us with strong verbal processing and weak symbolic/pattern processing, this makes math much more difficult to approach.

Interestingly, discrete math feels the most "verbal" of all the subfields of math I've encountered (I haven't gone very deep). I think this is because notation in discrete math is is somehow closer to compressed prose or logic, whereas other forms of math use notation to fill in for long sequences of symbolic manipulation.

Not sure if that makes sense... I'm curious whether anyone else experiences it that way.

reply
At some point though, the speed of reading/writing is limiting what you can understand. Think of "not fitting the needed formulas/theorems in cache".
reply
I did study math at university for a while. Dropped out eventually. In the beginning I was super annoyed by the brevity and hated it. But after like 3 months it suddenly became natural. I also appreciate the clarity of how mathematicians introduce new ways to write things. That is sometimes even more verbose than some random API docs for a new function…
reply
Look up "APL" and "J".
reply
There's a reason they're not more popular...
reply
yes! I really find when computer science ppl start using math notation to describe algorithm very pretentious. we have programming languages in comp sci, we don't need it!
reply
I was reading about Tao's efforts to get more people to use Lean and apparently a big roadblock for people is that Lean uses very specific static typing.

e.g. to use a very simple example on a white board "3" is "overloaded" as:

- the integer 3

- the rational number 3

- the whole number 3

- etc

When you write a proof in Lean, you have to specify the the type of "3" you mean.

Having using Python/Perl and Java over the years, I get that some math folks found handling this daunting or at a minimum friction to getting into using Lean.

LLMs seem to have been a big help here just for the "translate my math notation into a proof" feature.

reply
To get the hang of this, I used Leanstral (Mistral’s LEAN agent) to vibe-code things like “the game of bridge” and then read the LEAN code.
reply
Sometimes I wonder if mathematics would have been significantly more improved if they hadn't insisted on notating their variables as single letters and also indicated variable types out-of-line (or at all)...

but then I take a look at literally anything the Haskell people do and realize that it probably wouldn't have helped.

reply
For what it's worth, it's not a problem with multiple kinds of multiplication (multiplication by a scalar can be viewed as multiplication by a specific kind of matrix), but with the idea that one can cancel in a multiplication. Since you can't cancel in matrix multiplication, you run into unexpected trouble when you try to do so, even if that's the only multiplication in sight. (In fact, you can't cancel in scalar multiplication either unless you've checked that you aren't multiplying by 0 …. Also, I'll note that surely no young mathematician has encountered the P = NP problem without thinking for a sophomoric moment that the solution is N = 1.)
reply
>For example, in my quantum class the teacher wrote "H Psi = E Psi" on the board, we all laughed, "just cancel the psi" but it turns out one was a multiplcation and the other was a matrix multiplication (operator) and so we had to learn all new nomenclature.

This is one of the great things about Lean becoming used for more and more mathematics: understanding exactly how an operator/function is defined is just an IDE click or few away. It completely removes the ambiguity present in hand-written proofs, although it still can require a lot of reading to actually meaningfully understand the definitions.

reply
I would expand on this. AI is great for me because it can read the equations I don't understand and turn it into code I can understand. I've worked in science for decades and it's still like pulling teeth to replicate a competitor's paper when they are vague and sloppy with their description (often intentionally).
reply
ugh, I had some text book that used R for a scalar value and (edit: \u{MATHEMATICAL BOLD FRAKTUR CAPITAL R} here) for a matrix that was related to the scalar and I had to go back and re-learn a month of material once I figured out that the font was being used with intent
reply