- Control Flow: Statements, algorithm steps, Expression, Command-style, Declarative style
- State: Mutable, Immutable, Copy-on-write, Stateless
- Contexts: Objects, Records, Closures, Containers, Modules
- Branching: statement, expressions, guards, pattern matching
- Iteration: Loops, Recursion, Iterators / Generators, Streams
- Instantiation: Operator
new, Creational patterns like Factory, Builder, Closures, Containers, Cloning- Inheritance: Classes (
extends), Interfaces (implements), Prototype programming, Mixins, Composition, Aggregation, Partial/Curry, Traits- Primitive values: Scalars, Boxing, Value Objects, Containers
- Purity: Pure functions, Functions with side effects, IO monads
- Evaluation Flow: Function composition, Nested calls, Pipeline
|>- Dependencies: pass, injection, global namespaces, service locators
- Structural Control: Pattern matching, Nested
if/else conditionals, Guards- Error handling: Total functions, Throwing exceptions, Error codes, Return
null, undefined, Null objects, Option / Either / Result / Promise- Stability of Effects: Idempotent operations, Order-sensitive operations, Commutative / associative operations
- Resource Control: Manual destruction, RAII / disposables, Region-based allocation
- Concurrency Model: Shared-memory, Stateless, Message passing (Actor model), Transactional
- Asynchronity: Callback, Promise, Async/await, Future, Task, Async compose, Observer (EventEmitter, EventTarget, Signal), Streams and other abstractions
- Other topics: Data Ownership, Code granularity, Point-free style, Referential transparency