Message from JavaScript discussions

May 2017

— Because location = index * itemsize


"Hello" is 5 characters, and "Help" is 4. Therefore if traversing to "Hello" and searching for "Help" in the set, you can deduce from "Hello"'s metadata that a word after it shares 2 characters, and thus you know the probability of the next word being "Help" is 2/4. If that number is any lower than the sum of the shared characters and the characters of the input string, you know 100% that the next word, and all words after it, will definitely not match the input string

— Thus you can abandon that portion of the tree completely, eliminating however many words are related to 'Hello'

Message permanent page

— Wait... should we perhaps lookup by length first?

— Since 'Hello" shares so many characters with "Help", 3/4, your deduction here will be spot-on until you get to the point where you have not constructively proven "Help" is not in the set as you have not seen the entire set, but you have posited a contradictory proof which states the number of possible matching characters is zero, and thus aids in the proof that "Help" is not in the set

Message permanent page

— ["Hometown" (Next shares 3 chars)] -> ["Howdy" (No next word sharing any chars)]

— > "😂😂😂".split('').map(x => x.charCodeAt())
[ 55357, 56834, 55357, 56834, 55357, 56834 ]

— That's the kind of information in the linked list you would have to make these deductions

— Not sure how big typed arrays we would need

— Perfect

— What's the biggest value a single JS character can have?

— I was thinking it would help this as well