Something that's been bothering me in the podcast ...
# thinking-together
t
Something that's been bothering me in the podcast is the problem of having a single notation to represent expressions. The reason it has been bothering me, is that I suspect it's something that would have an impossibility proof. Indeed it does. https://en.m.wikipedia.org/wiki/Richardson%27s_theorem
The class of expressions for which this holds is surprisingly minimal.
>>
Specifically, the class of expressions for which the theorem holds is that generated by rational numbers, the number π, the number log 2, the variable x, the operations of addition, subtraction, multiplication, composition, and the sin, exp, and abs functions.
k
Which podcast is this in relation to?
t
Steve mentioned it in a few episodes, but the one that most recently comes to mind is Episode 34.
>>
005235 SK: Yeah. Yeah. Well, so I guess what I'm getting at is, in a given notation, so I'm defining a language right now, it's called Steve's Notation. And in Steve's Notation, you can encode certain concepts, and each concept you encode and meditation has only one representation. So, not in every notation, just in my notation. You still think it's impossible? 005303 KY: Well, I mean, is your language going to have arithmetic? Is one plus two going to be different from two plus one
s
Wow, thanks Tim! This is exactly what I've been looking for
w
Consider notation more a matter of pragmatics than grammar.
For example, it's common convention for conditionals to be of the form
if more_variable == most_constant
though the order often doesn't matter.
i
(Except for all those horrendously scarred C programmers who flip the order and do
constant == variable
, so that if they miss one of the equals signs, it's a compiler error rather than a nightmare to debug)
😱 2
t
If a normalized notation was possible, it would be tremendously useful for a language like Unison that identifies functions by their hashes. I think even if it can't be done in general, having a consistent way to simplify / normalize notation could reduce the number of identical programs without eliminating the possibility for them.
w
@Ivan Reese Or the similar Java,
"hello".equals(could_be_null_you_never_know)
.