[[Concepts gain meaning from contexts]]. Programming textbooks often explain how functions create lexical scopes, determining the visibility and lifecycle of variables and other functions declared within them. However, functions also establish semantic scopes—contexts that give meaning to the concepts behind variable and function names. Clear, purposeful function names help define these semantic scopes, enabling simpler and more intuitive names within the function. This simplicity eases the cognitive load for both writers and readers. Beyond functions, other software constructs that create semantic scopes include classes, namespaces, and modules.