Skip to content

Cheatsheet

Wang Renxin edited this page Dec 1, 2020 · 1 revision

Operations

Operator Note
x + y plus; string concatenation
x - y minus
x * y multiply
x / y divide
x MOD y modulus
x ^ y exponential
-y unary negative
(expr) explicit priority indicator
x = y equals to; the same symbol as assignment
x < y less than
x > y greater than
x <= y less than or equals to
x >= y greater than or equals to
x <> y not equals to
p AND q logical "and"
p OR q logical "or"
NOT q logical "not"
BAND(x, y) bitwise "and"
BOR(x, y) bitwise "or"
BNOT(y) bitwise "not"
BXOR(x, y) bitwise "xor"
SHL(m, n) bitwise "left shift"
SHR(m, n) bitwise "right shift"

Collections

Function Note
LIST(...) creates a list, with optional initialization elements
DICT(...) creates an unordered dictionary, with optional initialization key-value pairs
PUSH(lst, v) pushes a value to the tail of a list
POP(lst) pops and returns a value from the tail of a list
BACK(lst) peeks and returns the value at the tail of a list
INSERT(lst, where, v) inserts a value at a specific position of a list
SORT(lst) sorts a list increasingly
EXISTS(coll, what) tells whether a list contains a specific value, or whether a dictionary contains a specific *key
INDEX_OF(lst, what) gets the index of a specific value in a list
GET(coll, where) gets the value at a specific index in a list, or the value at a specific key in a dictionary, or the value of an iterator
SET(coll, where, v) sets the value at a specific index in a list, or the value at a specific key in a dictionary
REMOVE(coll, where) removes the element at a specific index in a list, or the element at a specific key in a dictionary
CLEAR(coll) clears a list or a dictionary
CLONE(coll) clones a collection, each element will be duplicated, except for non-copyable ones; or clones a copyable referenced usertype
TO_ARRAY(lst) copies all elements from a list to a new array
ITERATOR(coll) gets an iterator of a list or a dictionary
MOVE_NEXT(iter) advances an iterator to the next element on a list or a dictionary
VAL(iter) returns the value of a dictionary iterator
LEN(coll) gets the element count of a collection

Coroutine

Function Note
COROUTINE(invokable, ...) creates a coroutine, with optional initialization arguments
YIELD v yields from a coroutine, hands over the execution flow to other coroutines or the main program flow
RETURN v returns from a coroutine
START(co) starts a coroutine, which will be automatically scheduled by a dispatcher
ABORT(co) aborts an automatically dispatching coroutine
MOVE_NEXT(co) iterates a coroutine for one step manually
GET(co) gets any yielded or returned value of the current iteration
GET_ERROR(co) gets any execution error of a coroutine
WAIT_FOR(s) constructs a non-referenced value that represents for waiting for certain seconds before dispatching to next coroutine cycle, only works with automatically dispatched coroutine

Generic functions

Function Note
END terminates the current program
INPUT [prompt,] x this function suspends the current execution and opens a dialog box for inputting data to x, with an optional input prompt
PRINT expr, ... for the purpose of debugging; writes some value to the output window (click Window, Output to open it), comma , is used to separate arguments, semicolon ; is used to make a new line
ASSERT(cond [, text]) for the purpose of debugging; prompts an assertion and terminates execution immediately if cond results in false
SWAP(x, y) swaps the values of x and y; this statement can be only called in global scope
IIF(cond, val0, val1) shortcut function to get one of the two values according to a condition expression
TRACE() for the purpose of debugging; prints the current stack trace
RAISE([ex]) raises an error, with an optional exception message
GC() tries to trigger garbage collection, and returns how much bytes have been collected; do not need to call this manually
MEM for the purpose of debugging; gets the size of the allocated memory in bytes
BEEP beeps once with the (PC) speaker, not available for all platforms
TYPEOF(v) gets the type of a non-referenced library value

Graphics

Function Note
DRIVER() gets the current driver, there's only one driver instance for a running disk
VALID(drv) checks whether a driver is valid
SET_CLEARER(drv, auto) sets whether the clears frame buffers automatically
SET_INTERPOLATOR(drv, rule) sets a graphics interpolator of a driver; defaults to "nil" without calling this function
SET_ORDERBY(drv, rule ...) sets ordering rules of graphics commands; defaults to "nil" without calling this function
UPDATE_WITH(drv [, r]) sets a driver to the automatic updating mode, with an invokable argument
LOCK(drv) locks a driver; suspends any resource loading procedures, and audio committing
UNLOCK(drv) unlocks a driver; resumes any resource loading procedures, and audio committing
LOAD_RESOURCE(path) loads a resource from the disk
LOAD_BLANK(y, w, h, n = 1) loads a blank resource
CLONE(g) clones a graphics object, and its states
RGBA(r, g, b, a = 255) constructs a color value with RGBA components, each component is an integer with range of values from 0 to 255
UNPACK(c, r, g, b [, a]) unpacks a color value with RGBA components, and assigns all result values to rest variables
PLAY(spr, b = -1, e = -1, loop = TRUE, init = FALSE) plays a range of frames of a sprite
STOP(spr) stops animating a sprite
FLIP_X(spr, f = FALSE) sets whether flipping a sprite horizontally
FLIP_Y(spr, f = FALSE) sets whether flipping a sprite vertically
SET_FLIP_CONDITION(spr, fx, fy) sets the flipping condition of a sprite

Primitives

Function Note
SYNC synchronizes primitive commands to the driver, used in the manual updating mode only (without calling UPDATE_WITH)
CLS [l] clears a frame buffer at a specific layer, with range of values from 0 to 4, see top most of the graphics section for details; clears all layers if no argument passed
COL c sets the default color value of future commands
CLIP [x, y, w, h, ss = TRUE, ip = TRUE] sets a clip area, resets to none clip areas if no argument passed
CAMERA [x, y] moves the camera to a specific position, resets its position if no argument passed
FONT [i, cw = 8, ch = 8, channel = -1] customizes the font face to be used with the TEXT function with a quantized image, only determines whether pixels are transparent but not the final color; resets to the default built-in font if no argument passed
TEXT x, y, v [, c] draws a text
PLOT x, y [, c] plots a point
LINE x0, y0, x1, y1, w = 1 [, c] draws a line
CIRC x, y, r [, c] draws a circle
CIRCFILL x, y, r [, c] draws a filled circle
ELLIPSE x, y, rx, ry [, c] draws an ellipse
ELLIPSEFILL x, y, rx, ry [, c] draws a filled ellipse
ARC x, y, r, sa, ea, pie = FALSE [, c] draws an arc
ARCFILL x, y, r, sa, ea, pie = FALSE [, c] draws a filled arc
RECT x0, y0, x1, y1 [, c] draws a rectangle
RECTFILL x0, y0, x1, y1 [, c] draws a filled rectangle
TRI x0, y0, x1, y1, x2, y2 [, c] draws a triangle
TRIFILL x0, y0, x1, y1, x2, y2 [, c] draws a filled triangle
TRITEX i, v0, v1, v2, s = FALSE draws a textured triangle
QUAD x0, y0, x1, y1, x2, y2, x3, y3 [, c] draws a quadrangle
QUADFILL x0, y0, x1, y1, x2, y2, x3, y3 [, c] draws a filled quadrangle
PGET i gets the color of a palette, at a specific index
PSET i, c, ip = FALSE sets the color of a palette; only affects during driver's updating

Sprite

Function Note
STEP_ON(y) creates a non-referenced "step on" value, that represents for aligning a sprite's bottom edge to y
SPR spr, x, y, r = 0 draws a sprite
SSPR spr, sx, sy, sw, sh, x, y [, w [, h, r = 0]] stretches rectangle from sprite sheet sx, sy, sw, sh, and draws in rectangle x, y, w, h
SGET spr, i, x, y gets the color index of a sprite, at a specific position
SGET spr, i, what gets the data of a sprite
SSET spr, i, x, y, v sets the color index of a sprite, at a specific position
SSET spr, i, what, v sets the data of a sprite

Map

Function Note
MAP m, x, y, r = 0 draws one or more map layers at a specific position
MGET m, i, x, y gets the tile index or logic mark of a map layer at a specific position
MSET m, i, x, y, v sets the tile index or logic mark of a map layer

Quantized

Function Note
IMG i, x, y, r = 0, q = 0, fx = FALSE, fy = FALSE draws a quantized image at a specific position
SIMG i, sx, sy, sw, sh, x, y [, w [, h, r = 0, q = 0, fx = FALSE, fy = FALSE]] stretches rectangle from a quantized image sx, sy, sw, sh, and draws in rectangle x, y, w, h
IGET i, x, y gets the color index of a quantized image, at a specific position
ISET i, x, y, v sets the color index of a quantized image, at a specific position

Input

Function Note
TOUCH i, x, y [, b0 [, b1 [, b2]]] gets mouse/touch states
BTN b, p = 0 checks whether a virtual button is pressed
BTN() returns true if any virtual button of the first player is pressed
BTNP b, p = 0 checks whether a virtual button is just released from pressing
BTNP() returns true if any virtual button of the first player is just released from pressing
KEY k checks whether a key is pressed, eg. IF KEY ASC("a") THEN PRINT "Aha!";
KEY() returns true if any key is pressed
KEYP k checks whether a key is just released from pressing
KEYP() returns true if any key is just released from pressing

Audio

Function Note
SET_VOLUME(mv = 1, sv = 1, sp = 1) sets the volume values of audio, with range of values from 0.0 to 1.0
USE_SOUND_FONT([path, r = TRUE]) uses a sound font bank for music
PLAY seq, ch = 0, preset = 0, loop = FALSE plays an MML (Music Macro Language) string; use PLAY "P", ch to stop music at specific channel, or use the following STOP instead
STOP ch stops music started by PLAY
WAVE() creates a wave object for prefab sound effect
Wave.PUSH(y, hz, tm, vol = 1) pushes a sample node, each wave object contains up to 256 sample nodes
Wave.LEN() gets the sample count of a wave object
SFX wav, loop = FALSE plays a prefab sound effect
SFX y, hz, tm, ... plays a sound effect sequence, can be used with one or more sets of tones as SFX y0, hz0, tm0, y1, hz1, tm1, ... yn, hzn, tmn
STOP id stops sound effect started by SFX
SAY words, speed = 72, pitch = 64, throat = 128, mouth = 128 synthesizes speech according to specific text

Basic functions

Function Note
ABS(n) gets the absolute value of a number
SGN(n) gets the sign of a number
SQR(n) gets the square root of a number
FLOOR(n) gets the greatest integer not greater than a number
CEIL(n) gets the least integer not less than a number
FIX(n) gets the integer part of a number
ROUND(n) gets the nearest approximate integer of a number
SRND(n) plants a random seed
RND gets a random value between [0, 1]
RND([lo = 0,] hi) gets a random value between [lo, hi]
SIN(n) gets the sin value of a number
COS(n) gets the cos value of a number
TAN(n) gets the tan value of a number
ASIN(n) gets the asin value of a number
ACOS(n) gets the acos value of a number
ATAN(n) gets the atan value of a number
EXP(n) gets the exp value of a number
LOG(n) gets the log(e) value of a number
ASC(ch) gets the ASCII code of a character; eg. ASC("E")
CHR(n) gets the character of an ASCII code; eg. CHR(69)
LEFT(txt, n) gets a number of characters from the left of a string
MID(txt, off, n) gets a number of characters from a specific position of a string
RIGHT(txt, n) gets a number of characters from the right of a string
STR(n) converts a number to string; eg. STR(22 / 7)
VAL(txt) converts a string to number; eg. VAL("3.14")
LEN(txt) gets the length of a string
DATA ... declares some in-code data sequence
READ ... retrieves some in-code data to a list of variables
RESTORE [p] accepts an indicated target position, or 0 as default to go back to the very beginning
PERSIST ... marks some variables as nonvolatile persistence; can be only called in global scope with global variables

Pathfinding

Function Note
PATHER(w, n, e, s) creates a pather object
Pather.GET(x, y) gets the walking cost of a prefilled grid at a specific position, will raise an error if there's no grid prefilled
Pather.SET(x, y, cost) sets the walking cost of a prefilled grid, initializes cost matrix with 1 for all grids when first calling to this function
Pather.CLEAR() clears prefilled matrix and internal cached data
Pather.SET_DIAGONAL_COST(cost = 1.414) sets the walking cost of diagonal direction neighbors
Pather.FIND(bx, by, ex, ey, p = NIL) resolves a pathfinding

Walk

Function Note
WALKER() creates a walker object
Walker.SET_OBJECT_SIZE(w, h) sets the object size, defaults to 8x8
Walker.SET_TILE_SIZE(w, h) sets the tile size, defaults to 8x8
Walker.SET_OFFSET(x, y) sets the offset, defaults to 0, 0
Walker.SOLVE(objx, objy, expx, expy, p = NIL, slidable = 5) resolves a walking step

Archive

Function Note
ZIP() creates an archive object with the "zip" algorithms
Archive.OPEN(path, z) opens an archive file
Archive.CLOSE() closes an archive file
Archive.PACK(dst, src) packs from a file or byte array
Archive.UNPACK(src, dst) unpacks to a file or byte array
Archive.UNPACK_ALL(dir) unpacks everything to a directory
COMPRESS(bytes) compresses a byte array
DECOMPRESS(bytes) decompresses a byte array

Bytes

Function Note
BYTES() creates a byte array object
Bytes.PUSH(v) pushes a byte, is equivalent to Bytes.PUSH_U8(v)
Bytes.PUSH_U8(v) pushes a number as 8-bit unsigned integer; all pushing functions increase the buffer size by adding new elements
Bytes.PUSH_S8(v) pushes a number as 8-bit signed integer
Bytes.PUSH_U16(v) pushes a number as 16-bit unsigned integer
Bytes.PUSH_S16(v) pushes a number as 16-bit signed integer
Bytes.PUSH_INT(v) pushes a number as 32-bit signed integer
Bytes.PUSH_REAL(v) pushes a number as single precision float point
Bytes.POP() pops a byte, is equivalent to Bytes.POP_U8()
Bytes.POP_U8() pops a number as 8-bit unsigned integer; all popping functions retrieve data from buffer tail to head, and decrease the buffer size by removing read elements
Bytes.POP_S8() pops a number as 8-bit signed integer
Bytes.POP_U16() pops a number as 16-bit unsigned integer
Bytes.POP_S16() pops a number as 16-bit signed integer
Bytes.POP_INT() pops a number as 32-bit signed integer
Bytes.POP_REAL() pops a number as single precision float point
Bytes.READ() reads a byte, is equivalent to Bytes.READ_U8()
Bytes.READ_U8() reads a number as 8-bit unsigned integer; all reading functions retrieve data with an automatically increasing cursor from head to tail, without changing elements
Bytes.READ_S8() reads a number as 8-bit signed integer
Bytes.READ_U16() reads a number as 16-bit unsigned integer
Bytes.READ_S16() reads a number as 16-bit signed integer
Bytes.READ_INT() reads a number as 32-bit signed integer
Bytes.READ_REAL() reads a number as single precision float point
Bytes.END_OF_STREAM() checks whether has read to the end of a buffer
Bytes.POKE(i) sets the accessing position of a buffer
Bytes.CLEAR() clears byte array
Bytes.LEN() gets the buffer size in bytes
Bytes.GET(i) gets the byte at a specific index
Bytes.SET(i, v) sets the byte at a specific index with a value

Database

Function Note
DATABASE() creates a database object
Db.OPEN(path) opens a database connection
Db.CLOSE() closes a database connection
Db.HAS_TABLE(tbl) checks whether a table exists or not
Db.QUERY(sql) executes an SQL query
Db.EXEC(sql) executes an SQL statement

Date time

Function Note
SLEEP(s) sleeps for certain seconds
TICKS() gets the wall clock independent ticks in milliseconds, relevant to specific hardware cycles or platform ticks
NOW([fmt]) gets the current time in string

File

Function Note
FILE() creates a file object
File.OPEN(path, acc) opens a file on disk
File.CLOSE() closes a file
File.WRITE(v ...) writes one or more values to a file
File.WRITE_U8(v) writes a number as 8-bit unsigned integer
File.WRITE_S8(v) writes a number as 8-bit signed integer
File.WRITE_U16(v) writes a number as 16-bit unsigned integer
File.WRITE_S16(v) writes a number as 16-bit signed integer
File.WRITE_INT(v) writes a number as 32-bit signed integer
File.WRITE_REAL(v) writes a number as single precision float point
File.WRITE_LINE(v) writes one value and a newline character CHR(10) to file
File.READ([n]) reads a byte as number, or some bytes as string
File.READ_U8() reads a number as 8-bit unsigned integer
File.READ_S8() reads a number as 8-bit signed integer
File.READ_U16() reads a number as 16-bit unsigned integer
File.READ_S16() reads a number as 16-bit signed integer
File.READ_INT() reads a number as 32-bit signed integer
File.READ_REAL() reads a number as single precision float point
File.READ_LINE() reads a line of text
File.END_OF_STREAM() checks whether has read to the end of a file
File.PEEK() gets the accessing position of a file
File.POKE(i) sets the accessing position of a file
File.LEN() gets the file size in bytes

GUI

Function Note
MSGBOX(msg) shows a message box with text
OPEN_FILE_DIALOG([y [, m]]) shows a file opening dialog box
SAVE_FILE_DIALOG([y]) shows a file saving dialog box
PICK_DIRECTORY_DIALOG([d]) shows a directory picking dialog box

Image

Function Note
IMAGE() creates an image object
Image.LOAD(v) loads an image from a file, or byte array
Image.SAVE(v, y) saves an image to a file, or byte array
Image.RESIZE(w, h) resizes an image
Image.GET(x, y) gets the color of a pixel
Image.SET(x, y, c) sets the color of a pixel
Image.LEN([r]) gets the count of total pixels, or width, or height of an image

IO

Function Note
GET_DOCUMENT_PATH() gets the document path, with writable accessing rights, often termed as "Documents" or "My Documents"
COMBINE_PATH(x, y) combines two path parts into a path string
FILE_INFO(path) creates a file information object
Fi.READ_ALL() reads all the content of a file as string
Fi.CREATE() tries to create a file
Fi.PARENT() gets the directory information of a file's parent
Fi.GET_FULL_PATH() returns the full path of a file
Fi.GET_PARENT_PATH() gets the directory path of a file's parent
Fi.GET_FILE_NAME() gets the file name of a file
Fi.GET_EXT_NAME() gets the extension name of a file
Fi.IS_BLANK() checks whether a file is blank
Fi.EXISTS() checks whether a file exists
Fi.COPY_TO(dst) copies a file to another location
Fi.REMOVE() removes a file
DIRECTORY_INFO(path) creates a directory information object
Dir.CREATE() tries to create a directory
Dir.PARENT() gets the directory information of a directory's parent
Dir.GET_FILES([p, r = FALSE]) gets the files in a directory
Dir.GET_DIRECTORIES(r = FALSE) gets the sub directories under a directory
Dir.GET_FULL_PATH() returns the full path of a directory
Dir.GET_PARENT_PATH() gets the directory path of a directory's parent
Dir.GET_DIR_NAME() gets the directory name of a directory
Dir.IS_BLANK() checks whether a directory is blank
Dir.EXISTS() checks whether a directory exists
Dir.REMOVE() removes a directory

JSON

Function Note
JSON() creates a JSON object
Json.PARSE(txt) parses from a JSON string
Json.SERIALIZE() serializes to a JSON string
Json.GET() gets BASIC8 objects and values from a JSON object
Json.SET(v) sets BASIC8 objects and values to a JSON object
JSON_BOOL(b) creates a JSON bool with a BASIC8 integer
UNPACK(b) unpacks a BASIC8 integer from a JSON bool

Math

Functions Note
PI gets the constant Pi
DEG(r) converts radians to degrees
RAD(d) converts degrees to radians
MIN(...) gets the minimum one among some numbers
MAX(...) gets the maximum one among some numbers
VEC2(x = 0, y = 0) constructs a vec2 with two real numbers
VEC2(v3) constructs a vec2 with a vec3, takes two components and ignores the last one
VEC3(x = 0, y = 0, z = 0) constructs a vec3 with three real numbers
VEC3(v2, z = 0) constructs a vec3 with a vec2 and a real number
VEC4(x = 0, y = 0, z = 0, w = 1) constructs a vec4 with some real numbers
VEC4(v2, z = 0, w = 1) constructs a vec4 with a vec2 and two real numbers
VEC4(v3, w = 1) constructs a vec4 with a vec3 and a real number
VEC4(mat44) extracts the rotation part from a matrix to a quaternion
MAT4x4(m11 = 0, m12 = 0, ... = 0, m44 = 0) constructs a mat4x4 with some real numbers
MAT4x4(v4) constructs a rotation matrix from a quaternion
VEC4_FROM_EULER(x, y, z), VEC4_FROM_AXIS_ANGLE(axis_v3, angle)
MAT4x4_FROM_EULER(x, y, z), MAT4x4_FROM_AXIS_ANGLE(axis_v3, angle)
MAT4x4_FROM_SCALE(x, y, z)
MAT4x4_FROM_TRANSLATION(x, y, z)
MAT4x4_LOOKAT(pos_v3, target_v3, up_v3, lh = FALSE) makes a lookat matrix
MAT4x4_ORTHO(left, right, bottom, top, near, far, zclip, lh = FALSE) constructs a matrix represents for a orthographic projection
MAT4x4_PERSPECTIVE(left, right, bottom, top, near, far, zclip, lh = FALSE) constructs a matrix represents for a perspective projection
MAT4x4_PERSPECTIVE_FOV(fov, aspect, near, far, zclip, xfov = TRUE, lh = FALSE)
UNPACK(v2, x [, y])
UNPACK(v3, x [, y [, z]])
UNPACK(v4, x [, y [, z [, w]]])
UNPACK(mat44, m11 [, m12 [, ... [, m44]]])
Operator Note
v2 + v2, v3 + v3, v4 + v4
v2 - v2, v3 - v3, v4 - v4
v2 * v2, v3 * v3, v4 * v4
v2 * num, v3 * num, v4 * num
num * v2, num * v3, num * v4
mat44 * num
num * mat44
v2 / v2, v3 / v3, v4 / v4
v2 / num, v3 / num, v4 / num
num / v2, num / v3, num / v4
-v2, -v3, -v4, -mat44
mat44 * mat44
mat44 * v3 equals to mat44 * VEC4(v3, 1), results in vec4
mat44 * v4
v3 * mat44 equals to VEC4(v3, 1) * mat44, results in vec4
v4 * mat44
DOT(v2, v2), DOT(v3, v3), DOT(v4, v4)
CROSS(v3, v3)
NORMALIZE(v2), NORMALIZE(v3), NORMALIZE(v4)
LENGTH_SQUARE(v2), LENGTH_SQUARE(v3), LENGTH_SQUARE(v4)
LENGTH(v2), LENGTH(v3), LENGTH(v4)
DISTANCE_SQUARE(v2, v2), DISTANCE_SQUARE(v3, v3), DISTANCE_SQUARE(v4, v4)
DISTANCE(v2, v2), DISTANCE(v3, v3), DISTANCE(v4, v4)
LERP(v2, v2, beta), LERP(v3, v3, beta)
IDENTITY() constructs an identity matrix
CONJUGATE(v4)
TRANSPOSE(mat44)
INVERSE(v4), INVERSE(mat44)

Network

Function Note
NET() creates a network object
Net.OPEN(addr, recv [, stbl [, dscn]]) opens a network, either as server or client
Net.CLOSE() closes a network, clears all options; will neither be impossible to send nor receive anything after closing
Net.SEND(d) sends data via network
Net.BROADCAST(d, e = FALSE) broadcasts data to all connections, cannot be used with UDP instance
Net.GET(k) gets an option value with a specific key
Net.SET(k, v) sets an option with a specific key and value, the options will be cleared after closing a network; set any options before opening

System

Function Note
CPU_CORE_COUNT gets the core count of the current CPU
SET_OUTPUT_VISIBLE(s = TRUE) for the purpose of debugging; sets the visibility of the output window programmatically
GET_APP_DIRECTORY() platform dependent, gets the directory path of the current BASIC8 fantasy computer
GET_CURRENT_DIRECTORY() platform dependent, gets the current working directory path
SET_CLIPBOARD_TEXT(txt) sets the text content of the clipboard
GET_CLIPBOARD_TEXT() gets the text content of the clipboard
HAS_CLIPBOARD_TEXT() checks whether the clipboard is filled with text content
OS() platform dependent, gets the name of the current OS
SYS(cmd) platform dependent, executes a system command

Text

Function Note
LCASE(txt) transforms a string to lower case
UCASE(txt) transforms a string to upper case
SPLIT(txt, d) splits a string into parts
STARTS_WITH(txt, what, ci = TRUE) checks whether a string starts with a sub string
ENDS_WITH(txt, what, ci = TRUE) checks whether a string ends with a sub string
FIND(txt, what, off = 0) gets the start position of a sub string
LIKE(txt, what) matches a string with a wildcard pattern
REGEX(text, re) matches a string with a regular expression

Web

Function Note
WEB_REQUEST(url, method = "get" [, fields[, headers]]) performs an http request