Class HigherOrderFunctionNames

java.lang.Object
dev.frostlake.functions.HigherOrderFunctionNames

public final class HigherOrderFunctionNames extends Object
The higher-order functions — the ones whose last argument is a lambda, so the argument must NOT be pre-evaluated. ExpressionEvaluatorVisitor applies the lambda per array element instead of looking the name up in the FunctionRegistry maps, which is why these names were invisible to SHOW FUNCTIONS while being perfectly dispatchable.

This set is load-bearing for dispatch: the visitor tests membership here to decide whether to take the higher-order path, and SHOW FUNCTIONS enumerates the same set through FunctionRegistry.allDispatchableNames(), so the listing cannot drift from the dispatch again.

Snowflake lists all three (SHOW BUILTIN FUNCTIONS LIKE 'TRANSFORM' returns TRANSFORM(ARRAY, FUNCTION(VARIANT)) RETURN ARRAY, is_builtin = 'Y').

  • Method Details

    • contains

      public static boolean contains(String name)
      Whether this name takes a lambda argument and is evaluated by the higher-order path.
    • names

      public static SortedSet<String> names()
      Every higher-order function name, upper-cased and sorted.