Pete the Builder
I believe QB64 actually uses hash tables. I remember when that was a giant milestone for galleon in improving compilation time - hashing for variable (sub, function, array, etc) names though I am not familiar with exactly how it was done. Here's a reasonable list of applications that even mentions programming language interpreters/compilers:
https://en.wikipedia.org/wiki/Hash_table#Uses. Maybe Steve can further increase compilation time by replacing it with his binary search?
@STx the dictionary example may be a poor example of practical hash table use unless Steve is just totally messing with you with this one-upping you with the binary search, who knows. The best and simplest example would be "associative arrays (arrays whose indices are arbitrary strings or other complicated objects), especially in interpreted programming languages like Perl, Ruby, Python, and PHP" (from the wiki). Here's an example:
there's an array called "cat":
cat$(0) = "Benedict"
cat$(1) = "maine coon"
cat$(2) = "rats"
cat$(3) = "35 kg"
It's a little confusing to remember that I'd have to call cat$(1) to get it's breed type, a better representation is:
cat_hash$("name") = "Benedict"
cat_hash$("breed") = "maine coon"
cat_hash$("food") = "rats"
cat_hash$("mass") = "35 kg"
now all you need is a hashing function to resolve the following:
"name" -> 0
"breed" -> 1
"food" -> 2
"mass" -> 3
as you can imagine, this is extremely useful in tables and databases. Shame on Steve for spamming this otherwise informative thread with unrelated and misleading nonsense.