Write a debounce, memoize, throttle function for practice