Explain what a hash table is and what it is used for.
Implement the concept with a function using separate chaining. run_hash_table(operations) receives a list of operations and returns one result per operation: set returns True, get returns its value or None, contains returns a boolean, and delete returns whether a key existed.
def run_hash_table(operations):