graph LR
Currying_and_Partial_Application["Currying and Partial Application"]
Function_Composition_Flow_["Function Composition (Flow)"]
Function_Arity_Control["Function Arity Control"]
Function_Invocation_Management["Function Invocation Management"]
Predicate_Negation["Predicate Negation"]
Wrapped_Function["Wrapped Function"]
Currying_and_Partial_Application -- "manages and delegates calls to" --> Wrapped_Function
Function_Composition_Flow_ -- "composes and executes" --> Wrapped_Function
Function_Arity_Control -- "delegates calls to" --> Wrapped_Function
Function_Invocation_Management -- "manages invocation of" --> Wrapped_Function
Predicate_Negation -- "transforms output of" --> Wrapped_Function
The pydash.functions subsystem is a functional programming utility layer designed to provide a rich set of higher-order functions for transforming and managing function execution. At its core, the subsystem operates on a conceptual "Wrapped Function," which represents any user-provided callable. Components like Currying and Partial Application and Function Composition (Flow) manipulate the arguments or sequence of execution for these Wrapped Functions, returning new functions with altered behavior. Function Arity Control enforces specific argument counts, while Function Invocation Management governs the timing and frequency of Wrapped Function calls. Finally, Predicate Negation modifies the boolean output of a Wrapped Function. This architecture ensures that the subsystem acts as a versatile toolkit for functional composition and control, with all operations ultimately targeting and modifying the behavior of external, user-defined functions.
Provides mechanisms to transform functions by pre-filling arguments (partial application) or by allowing arguments to be supplied one at a time (currying). This component includes both the underlying classes and the convenience factory functions for creating curried or partially applied functions.
Related Classes/Methods:
pydash.functions.Curry:786-814pydash.functions.Partial:1298-1324pydash.functions.curry:786-814pydash.functions.curry_right:847-874pydash.functions.partial:1298-1324pydash.functions.partial_right:1327-1348pydash.functions.wrap:1441-1461
Enables chaining multiple functions together, where the output of one function becomes the input of the next, supporting both left-to-right (flow) and right-to-left (flow_right) composition.
Related Classes/Methods:
pydash.functions.Flow:1024-1053pydash.functions.flow:1024-1053pydash.functions.flow_right:1091-1123
Restricts the number of arguments a function can accept, ensuring functions are called with a specific number of arguments, such as a single argument (unary) or a fixed number (ary).
Related Classes/Methods:
Provides higher-order functions to control when and how often a function is invoked. This includes delaying execution (debounce), limiting call frequency (throttle), ensuring single execution (once), or executing only after/before a certain number of calls (after, before).
Related Classes/Methods:
pydash.functions.After:642-670pydash.functions.Before:699-727pydash.functions.Once:1201-1222pydash.functions.Debounce:877-895pydash.functions.Throttle:1399-1414pydash.functions.after:642-670pydash.functions.before:699-727pydash.functions.once:1201-1222pydash.functions.debounce:877-895pydash.functions.throttle:1399-1414
Inverts the boolean result of a predicate function, providing a simple way to create inverse conditions without modifying the original function's logic.
Related Classes/Methods:
This is a conceptual component representing the user-provided function that is being transformed, composed, or managed by the functional primitives. It is the ultimate target of all operations within this subsystem. As a conceptual entity, it does not have a specific source code reference within the pydash library itself.
Related Classes/Methods: None