Articles:
The Nodes: Data Expression feature in Ligantic provides a powerful and flexible way to manipulate data using intuitive, math-oriented expressions. This feature allows you to perform a wide range of data transformations and calculations directly within your Ligantic workflows, without the need for complex programming or scripting.
The expression syntax used in Nodes: Data Expression is similar to normal JavaScript expressions, but is more math-oriented.
In addition to the standard arithmetic operators, Nodes: Data Expression also includes a number of unary operators that can be used to perform various mathematical and logical operations. These include:
-x
: Negation+x
: Unary plus (converts the operand to a number, but has no other effect)x!
: Factorialabs x
: Absolute value (magnitude) of xacos x
: Arc cosine of x (in radians)acosh x
: Hyperbolic arc cosine of x (in radians)asin x
: Arc sine of x (in radians)asinh x
: Hyperbolic arc sine of x (in radians)atan x
: Arc tangent of x (in radians)atanh x
: Hyperbolic arc tangent of x (in radians)cbrt x
: Cube root of xceil x
: Ceiling of x — the smallest integer that's >= xcos x
: Cosine of x (x is in radians)cosh x
: Hyperbolic cosine of x (x is in radians)exp x
: e^x (exponential/antilogarithm function with base e)expm1 x
: e^x - 1floor x
: Floor of x — the largest integer that's <= xlength x
: String or array length of xln x
: Natural logarithm of xlog x
: Natural logarithm of x (synonym for ln
, not base-10)log10 x
: Base-10 logarithm of xlog2 x
: Base-2 logarithm of xlog1p x
: Natural logarithm of (1 + x)not x
: Logical NOT operatorround x
: X, rounded to the nearest integer, using "grade-school rounding"sign x
: Sign of x (-1, 0, or 1 for negative, zero, or positive respectively)sin x
: Sine of x (x is in radians)sinh x
: Hyperbolic sine of x (x is in radians)sqrt x
: Square root of x. Result is NaN (Not a Number) if x is negative.tan x
: Tangent of x (x is in radians)tanh x
: Hyperbolic tangent of x (x is in radians)trunc x
: Integral part of a X, looks like floor(x)
unless for negative numberIn addition to the built-in operators, Nodes: Data Expression also includes a number of pre-defined functions that can be used to perform various data manipulation and analysis tasks. These include:
random(n)
: Get a random number in the range [0, n)
. If n
is zero, or not provided, it defaults to 1.min(a,b,...)
: Get the smallest (minimum) number in the list.max(a,b,...)
: Get the largest (maximum) number in the list.hypot(a,b)
: Hypotenuse, i.e. the square root of the sum of squares of its arguments.pyt(a, b)
: Alias for hypot
.pow(x, y)
: Equivalent to x^y
. atan2(y, x)
: Arc tangent of x/y
. i.e. the angle between (0, 0)
and (x, y)
in radians.roundTo(x, n)
: Rounds x
to n
places after the decimal point.map(f, a)
: Array map: Pass each element of a
the function f
, and return an array of the results.fold(f, y, a)
: Array fold: Fold/reduce array a
into a single value, y
by setting y = f(y, x, index)
for each element x
of the array.filter(f, a)
: Array filter: Return an array containing only the values from a
where f(x, index)
is true.indexOf(x, a)
: Return the first index of string or array a
matching the value x
, or -1
if not found.join(sep, a)
: Concatenate the elements of a
, separated by sep
.if(c, a, b)
: Function form of c ? a : b
. Note: This always evaluates both a
and b
, regardless of whether c
is true or not. Use c ? a : b
instead if there are side effects, or if evaluating the branches could be expensive.addDuration(dateTime, durationValue, durationUnit)
: Add a duration to a given date and time.dateTime
: The starting datetime value.durationValue
: The numeric value of the duration to add.durationUnit
: The unit of the duration - supported values: hours
, minutes
, seconds
.slice(stringOrArray, start, end)
: Extract a portion of a string or array.stringOrArrayLink
: The input string or array to slice.start
: The starting index of the slice (inclusive).end
: The optional ending index of the slice (exclusive).startsWith(string, testString, start)
string
: The main string to checktestString
: The sequence of characters to search for at the beginning of the main stringstart
(optional): The position in the main string at which to begin searching. If omitted, the search starts from index 0true
if the main string begins with testString
at the specified positionfalse
otherwisestartsWith("Hello World", "Hello")
returns truestartsWith("Hello World", "World", 6)
returns truestartsWith("Hello World", "World")
returns falseNodes: Data Expression also includes a number of pre-defined constants that can be used in expressions, including:
true
: Logical true valuefalse
: Logical false valueThe Nodes: Data Expression feature in Ligantic can be used for a wide variety of data manipulation and analysis tasks, including:
Overall, the Nodes: Data Expression feature provides a powerful and flexible way to work with data within the Ligantic platform, allowing you to perform a wide range of data manipulation and analysis tasks without the need for complex programming or scripting.