Looks like translating a positional numbering system from ancient cultures than ruling out or not if they had the concept of zero. It may be a single use symbol, here is nothing, instead of being part of bigger amounts. Numbering systems doesn't have to be positional (nor go too far).
I highly recommend suffering through both early and late Wittgenstein (only wrote 2 books and essentially invented one of the 3 branches of philosophy).
Expect to only understand 10% of what he says, but that is normal.
Separately, pragmatism by William James is an easy 4 hour read and you can have 2/3 of the branches of meta philosophy.
I once had a statistics professor (teaching a programming class using, IIRC, SAS) in college who worked as a data analyst in the federal government, possibly the Labor Department. Part of his job was working with polling and form data. After class he once tried to explain a paper he wrote arguing for an additional null-like type in the formal analytics system in his domain. I was young and stupid (took it as an easy programming course; was not skilled at abstract math) and impatient (wanted to meet up with friends at a pub) so didn't follow along well enough to even properly remember his argument, let alone understand it. But I've always distinctly recalled that he was arguing for a 4th, or possibly 5th type, yet whenever I survey the literature I've only found at most such 2 types. But I've probably been looking in the wrong places.
For context, NULL/missing was a type. N/A was a type (i.e. a question irrelevant to someone). I can't remember the 3rd, and of course not the additional (4th or 5th) type he was proposing. If anyone knows a good resource that describes this problem domain, that would be much appreciated. I've been haunted for over 20 years by the regret of not fully appreciating what he was trying to explain to me, both because I could've learned something that day, but also because I almost immediately felt like an a*hole for not showing enough interest in and respect for a piece of scholarly work he was clearly proud of and wanted to share with me.
"Not available yet", at least to me, carries the implication that it will, not just might, become available at some point. Probably soon enough that it's worth asking the question again later. Whereas "don't know" suggests that it's not worth asking the question again, because you're probably just going to get "don't know" as the answer. (At least, if "don't know" and "not available yet" are both presented as options).
A more accurate description is “May become available”, it might be possible that it could become available and we believe it could within a short order, however it is also not assured or guaranteed that it will become available when we think, and it may also never become available at all for any number of reasons as simple as someone not following up and adding newly ascertained information or that the only possible source of the information has become permanently unavailable for many other reasons of their own.
"Don't care" - it has a value, but it doesn't matter. This is classically used in Karnaugh maps.
But you can imagine two kinds of "don't care" values, too: the complacent one, and the assertive one. The complacent one is the one we have in Karnaugh maps, which says, "it doesn't matter what I am, so if it matters to you what I am, I'll be what you want".
But the assertive variant says, "I don't matter, and if I matter for your calculation, your calculation clearly doesn't matter either."
> But I've always distinctly recalled that he was arguing for a 4th, or possibly 5th type, yet whenever I survey the literature I've only found at most such 2 types. But I've probably been looking in the wrong places.
It’s common for surveys to encode various null values. ‘Refused to answer’, ‘Did not know’, ‘Not applicable’, ‘Illegible response’ etc, although there is no standard way to do this.
The SAS language allows you to use multiple custom missing values, but this is not widely known and I’ve never seen anyone do it.
Oh that's easy. The 4th is "misplaced/lost", and the 5th is your kids pointing fingers at each other and saying "he/she did it, it wasn't me". Finally, the 6th is FILE_NOT_FOUND, coincidentally also the third boolean value after TRUE and FALSE.
No, that implication is not automatic. The Babylonian numeral system evolved over milenaries, and the simple space noting the absence of a digit between two digits was later noted by a "0" digit. But this symbol was never used by itself, so it did not mean "nothingness". In the same way, a civilization having the concepts of addition and subtraction does not automatically induce the concept of negative numbers.
On the other side, ancient Egyptian numerals did have a zero, but it was only for nothingness. But they did not have a placeholder zero, because their systems was similar to Greek and Roman numerals.
It is very big assumption to me. It is now used very widely. But I am not sure if it was at all common back in the history. Most systems were kinda different from it.
What I wonder is: why has nobody noticed that code editors lack a concept of 0?
When you're writing code, you can express any concept except that of an unfilled hole. We've rearranged every part of the coding process in a twisted-up way, all for the lack of a way to express lack.
If you want to be more clear about what I mean, look to tools which can express holes like https://scratch.mit.edu and https://hazel.org. They give the feeling of letting things snap together like lego bricks. Indeed, lego bricks themselves function because of the negative space (the holes) in them!
Yeah, I will. I'm being a bit coy because I already have a very specific solution in mind which would be a lot like Scratch, but unifying those ideas with syntax. It should be fully ready to share quite soon.
Have you also looked at Snap! (https://snap.berkeley.edu/), by any chance? It's basically Scratch but with the artificial limitations removed, e.g. you can pass lists to functions, and blocks (functions) are treated as first-class objects so you can store them in data structures, pass them as input to other functions, and basically teach students proper functional-programming thinking (to find the odd numbers in this list, just pass the "is odd?" block as input to the "filter" block and you're done).
Ugh I got rate limited so I had to make a new acct just to post this reply:
Sure! Like mad libs if you couldn't be sure if _____ was a missing part or the text what was meant to be there. In a mad lib it's obvious, but with code it may be less obvious. You certainly can't just use _ with code. Even the nil code point is allowed in some programming languages' source code (e.g. rust).
Here's my example: in JS code, what does // mean? Is it the start of a line comment or the empty regex? The difference between them is nothing. If you could write nothing as _, one would be /_/ and one would be //_
Yes. If we could find some such character that was completely safe all the time, we would have a system of universal templating for all programming languages. ...but we can basically prove to ourselves that we'll never find any completely safe unicode code point to use for the purpose that will never be in conflict with the syntax of any language. ...so are we done for? Nah, we just need an embedding
The question is the title is left unanswered by this shallow article. At least it's not AI slop since there are spelling mistakes ("You’re best hope").
> Say you’ve found 17 numeric symbols. You might infer that the writing used a base 20 system
Reals numerical systems are much more diverse than that. For instance, Babylon used a base 60 (hence our minutes and hours). But there were much less than 60 numeric symbols, since they had a symbol for 1 and 10. So 2 symbols for a base 60!
> never appears at the beginning of a number, you might infer that is a zero
In the later times Babylonians had a kind of zero, but it was very limited, only used to point the lack of a number between two, i.e. "2∅1" but never "21∅∅" which was written "21" (so numbers were ambiguous if the context didn't give the magnitude).
And Babylonians had floating numbers. So "4" could also mean 4/60.
What I mean is that Babylon had a zero, but it only covered a part of the positional modern zero. They could not write 0 - 3. And if their zero had been fully positional, there would have been numbers beginning with it, i.e. sexagecimals floats.
> Reals numerical systems are much more diverse than that. For instance, Babylon used a base 60 (hence our minutes and hours). But there were much less than 60 numeric symbols, since they had a symbol for 1 and 10. So 2 symbols for a base 60!
>In the later times Babylonians had a kind of zero, but it was very limited, only used to point the lack of a number between two, i.e. "2∅1" but never "21∅∅" which was written "21" (so numbers were ambiguous if the context didn't give the magnitude).
Was it really like this or could it have been like "21 h" meaning "2100"?
It has been pointed out before that although we know of no cultures which used a bijective base number system (well, besides base 1!) it might not be immediately obvious if they did.
I think it was in a paper which was about how many times the bijective base system had been independently reinvented by mathematicians.
43 comments
[ 0.19 ms ] story [ 8.9 ms ] threadI highly recommend suffering through both early and late Wittgenstein (only wrote 2 books and essentially invented one of the 3 branches of philosophy).
Expect to only understand 10% of what he says, but that is normal.
Separately, pragmatism by William James is an easy 4 hour read and you can have 2/3 of the branches of meta philosophy.
For context, NULL/missing was a type. N/A was a type (i.e. a question irrelevant to someone). I can't remember the 3rd, and of course not the additional (4th or 5th) type he was proposing. If anyone knows a good resource that describes this problem domain, that would be much appreciated. I've been haunted for over 20 years by the regret of not fully appreciating what he was trying to explain to me, both because I could've learned something that day, but also because I almost immediately felt like an a*hole for not showing enough interest in and respect for a piece of scholarly work he was clearly proud of and wanted to share with me.
NI No Information - the default, it is unknown and why it is unknown is also unknown
UNK Unknown - the most common other than NI
ASKU Asked but Unknown
NASK Not Asked - we don't know because we didn't ask
MSK Masked - hidden due to privacy or legal etc
NA Not Applicable
NAV Not Available - for example patient might be unconscious or doctor might be unreachable, temporary
> SQL shouldn’t even have null
But it needs to, because it needs to represent half of a result record not existing, i.e. on a LEFT JOIN.
But you can imagine two kinds of "don't care" values, too: the complacent one, and the assertive one. The complacent one is the one we have in Karnaugh maps, which says, "it doesn't matter what I am, so if it matters to you what I am, I'll be what you want". But the assertive variant says, "I don't matter, and if I matter for your calculation, your calculation clearly doesn't matter either."
It’s common for surveys to encode various null values. ‘Refused to answer’, ‘Did not know’, ‘Not applicable’, ‘Illegible response’ etc, although there is no standard way to do this.
The SAS language allows you to use multiple custom missing values, but this is not widely known and I’ve never seen anyone do it.
On the other side, ancient Egyptian numerals did have a zero, but it was only for nothingness. But they did not have a placeholder zero, because their systems was similar to Greek and Roman numerals.
Has the author not heard of Roman numerals?
When you're writing code, you can express any concept except that of an unfilled hole. We've rearranged every part of the coding process in a twisted-up way, all for the lack of a way to express lack.
If you want to be more clear about what I mean, look to tools which can express holes like https://scratch.mit.edu and https://hazel.org. They give the feeling of letting things snap together like lego bricks. Indeed, lego bricks themselves function because of the negative space (the holes) in them!
Sure! Like mad libs if you couldn't be sure if _____ was a missing part or the text what was meant to be there. In a mad lib it's obvious, but with code it may be less obvious. You certainly can't just use _ with code. Even the nil code point is allowed in some programming languages' source code (e.g. rust).
I feel like somewhere between zero, null, false, a null pointer or an uninstantiated reference we have a few methods to define nothing.
Well, this is plainly false.
* Technically you could read "k" as a symbol for thousand, "M" for million, "B" for billion, and "T" for trillion.
> Say you’ve found 17 numeric symbols. You might infer that the writing used a base 20 system
Reals numerical systems are much more diverse than that. For instance, Babylon used a base 60 (hence our minutes and hours). But there were much less than 60 numeric symbols, since they had a symbol for 1 and 10. So 2 symbols for a base 60!
> never appears at the beginning of a number, you might infer that is a zero
In the later times Babylonians had a kind of zero, but it was very limited, only used to point the lack of a number between two, i.e. "2∅1" but never "21∅∅" which was written "21" (so numbers were ambiguous if the context didn't give the magnitude).
And Babylonians had floating numbers. So "4" could also mean 4/60.
What I mean is that Babylon had a zero, but it only covered a part of the positional modern zero. They could not write 0 - 3. And if their zero had been fully positional, there would have been numbers beginning with it, i.e. sexagecimals floats.
It's oddly similar (obviously not identical) to bi-quinary: https://en.wikipedia.org/wiki/Bi-quinary_coded_decimal .
Was it really like this or could it have been like "21 h" meaning "2100"?
Did they write things like "5 talents of grain"?
One of the best I can recall.
I think it was in a paper which was about how many times the bijective base system had been independently reinvented by mathematicians.