FunctionDefinition: BaseDefinition & Partial<CollectionHandlers> & Partial<FunctionDefinitionFlags> & {
    complexity?: number;
    hold?: Hold;
    signature: FunctionSignature;
}

Definition record for a function.

Type declaration

  • Optionalcomplexity?: number

    A number used to order arguments.

    Argument with higher complexity are placed after arguments with lower complexity when ordered canonically in commutative functions.

    • Additive functions: 1000-1999
    • Multiplicative functions: 2000-2999
    • Root and power functions: 3000-3999
    • Log functions: 4000-4999
    • Trigonometric functions: 5000-5999
    • Hypertrigonometric functions: 6000-6999
    • Special functions (factorial, Gamma, ...): 7000-7999
    • Collections: 8000-8999
    • Inert and styling: 9000-9999
    • Logic: 10000-10999
    • Relational: 11000-11999

    Default: 100,000

  • Optionalhold?: Hold
    • "none" Each of the arguments is evaluated (default)
    • "all" None of the arguments are evaluated and they are passed as is
    • "first" The first argument is not evaluated, the others are
    • "rest" The first argument is evaluated, the others aren't
    • "last": The last argument is not evaluated, the others are
    • "most": All the arguments are evaluated, except the last one

    Default: "none"

  • signature: FunctionSignature