Callables
Callables are values that can be invoked as functions. In programming languages that support first-class functions, a callable value may be a function, a method, or an object implementing a call interface. When invoked, a callable is supplied with arguments, and it returns a result.
Common categories include functions or procedures, lambda expressions, and objects with a special method like __call__
Callables enable higher-order programming: passing functions as arguments, returning them from other functions, and storing them
Implementation considerations include binding of context for methods, lifetime and ownership (in languages with manual memory