A decorator can only call a function if it's never seen the inputs before. It adds an internal cache, which is just a Python dictionary that keeps the function arguments as the key and the output of the function as the value. So what all it needs to do is a simple dictionary call. And for the amount of words in the English language that are primarily used, it'll be called much less.