A function transforms zero or more textual or numerical parameters into another value.
Functions are used inside an expression, and support remote rendering.
The user can create its own custom functions but only built-in functions and official plugins can create functions that support teleportation.

Core functions

WARNING! In the ABeamer 2.x these core functions will move core-functions plugin.
To prevent breaking changes include now the js script core-functions.js on the html file.

ABeamer has the following core functions:

  • sin - 'sine' trigonometric function.
  • cos - 'cosine' trigonometric function.
  • tan - 'tangent' trigonometric function.

  • exp - 2^x

  • log - ln
  • log10 - base 10 logarithm.

  • abs - absolute value.

  • sign - sign function v != 0 ? v / |v| : 0.

  • random - random number between [0, 1].

  • ceil- always rounds up.
  • floor- always rounds down.
  • sqrt - square root.
  • round - round to the nearest integer value.
  • downRound - similar to round, but it guaranties that if fractional part is 0.5, it will always round down.

  • toNumber - converts a textual parameter into a numerical parameter.

  • toString - converts a numerical parameter into a textual parameter.

  • uppercase - returns the uppercase of the textual parameter.

  • lowercase - returns the lowercase of the textual parameter.
  • capitalize -returns the uppercase of the first letter of each word
  • substr - returns the a section of the 1st parameter.
    The 2nd parameter is the start value and the 3rd parameter is the length.
    If the 3rd parameter is less than 0, than is considered until the end.

  • iff - if the 1st numerical parameter is different from 0, it returns the 2nd parameter, otherwise it returns the 3rd paramter.
    This function doesn't supports lazy evaluation.

  • case - the 1st numerical parameter is a zero index to select which parameters to return.
    This function doesn't supports lazy evaluation.

  • get - returns the numerical N-value of a 0-base array.

  • slice - returns a subarray starting from start to end-1 of a 0-base array.


example: = substr('ABeamer', 4, 4)
example: = round(12.4)
example: = get([10,30,15],1)
it returns 30
example: = slice([10,30,15,40],1, 3)
it returns [30, 15]


Since ABeamer 1.6 that single numerical argument functions also support arrays.
The operation is perform for each element, and it returns an array.
The array functions can be composed.
example: = round(sqrt([12.4, 75, 10]))




export public const enum

export const enum ExFuncParamType;


public export interface

export interface ExFuncParam{ }


public property [ExFuncParam]

paType?: ExFuncParamType;


public property [ExFuncParam]

sValue?: string;


public property [ExFuncParam]

numValue?: number;


public property [ExFuncParam]

arrayValue?: number[];


public export interface

export interface ExFuncReq{ }


public property [ExFuncReq]

args: ABeamerArgs;


public property [ExFuncReq]

req?: ExFuncReq;


public property [ExFuncReq]

res?: ExFuncParam;


public property [ExFuncReq]

checkParams: _CheckParamFunc;


public export type

export type ExprFuncParams = ExFuncParam[];


public export type

export type ExFunction = (params: ExprFuncParams, req?: ExFuncReq) => void;