10 + 20
// Access object properies with .
// Access string and array elements with []
let data = {
numbers: [1, 2, 3],
chars: ["a", "b", "c"],
string: "Albert"
};
write!(data.numbers[0]);
write!(data.chars[2]);
write!(data.string[0]);
write!({a: 1, b: 2, c: 3}.b);
write!("Albert"[3]);
write!([1, 2, 3][2]);
plus(x, y)
// Async JavaScript functions are automatically awaited
// when running in the playground.
// Simulate a delay
write!("Waiting 500ms...");
delay(500);
write!("Done waiting!");
// Fetch a user from a REST API
let user = fetch-user(1);
write!("User: " ++ user.name);
write!("Email: " ++ user.email);
write!("City: " ++ user.city);
// Fetch their posts
let posts = fetch-posts(1);
write!("\nFirst " ++ str(count(posts)) ++ " posts by " ++ user.name ++ ":");
doseq (post in posts) -> write!("- " ++ post.title);
// Interactive async example
// Uses prompt for user input and fetch for API calls
let lookup-user! = (id-str) -> do
let id = number(id-str);
if not(number?(id)) || id < 1 || id > 10 then
write!("Invalid user ID: " ++ id-str ++ ". Please enter 1-10.");
else
write!("Fetching user " ++ str(id) ++ "...");
let user = fetch-user(id);
if null?(user) then
write!("User not found.");
else
write!("Name: " ++ user.name);
write!("Email: " ++ user.email);
write!("City: " ++ user.city);
write!("Company: " ++ user.company);
user;
end
end
end;
let show-todos! = (user) -> do
write!("\nFetching todos for " ++ user.name ++ "...");
let todos = fetch-todos(user.id);
let done = filter(todos, -> $.completed);
let pending = filter(todos, -> not($.completed));
write!("\nCompleted (" ++ str(count(done)) ++ "/" ++ str(count(todos)) ++ "):");
doseq (t in done take 5) -> write!(" ✓ " ++ t.title);
if count(done) > 5 then
write!(" ... and " ++ str(count(done) - 5) ++ " more");
end
write!("\nPending (" ++ str(count(pending)) ++ "):");
doseq (t in pending take 5) -> write!(" ○ " ++ t.title);
if count(pending) > 5 then
write!(" ... and " ++ str(count(pending) - 5) ++ " more");
end
end;
// Main interaction loop
let main! = () -> do
write!("=== User Lookup Tool ===\n");
loop (continue? = true) ->
if continue? then
let input = prompt("Enter a user ID (1-10), or cancel to quit:");
if null?(input) || input == "" then
write!("Goodbye!");
else
let user = lookup-user!(input);
if user then
let show = prompt("Show todos for " ++ user.name ++ "? (yes/no)");
if show == "yes" then show-todos!(user) end;
end;
write!("");
recur(true)
end
else null end
end;
main!()
// Functional Text Adventure Game in Lits
// Define locations
let locations = {
forest: {
description: "You are in a dense forest. Light filters through the leaves above.",
exits: { north: "cave", east: "river", south: "meadow" }
},
cave: {
description: "You stand in a dark cave. Water drips from stalactites overhead.",
exits: { south: "forest", east: "tunnel" },
items: ["torch"]
},
river: {
description: "A swift river flows from the mountains. The water is crystal clear.",
exits: { west: "forest", north: "waterfall" },
items: ["fishing rod"]
},
meadow: {
description: "A peaceful meadow stretches before you, filled with wildflowers.",
exits: { north: "forest", east: "cottage" },
items: ["flowers"]
},
waterfall: {
description: "A magnificent waterfall cascades down from high cliffs.",
exits: { south: "river" },
items: ["shiny stone"]
},
tunnel: {
description: "A narrow tunnel leads deeper into the mountain.",
exits: { west: "cave", east: "treasure room" }
},
"treasure room": {
description: "A small chamber glittering with treasure!",
exits: { west: "tunnel" },
items: ["gold key", "ancient map", "jeweled crown"]
},
cottage: {
description: "A cozy cottage with a smoking chimney stands here.",
exits: { west: "meadow" },
items: ["bread"]
}
};
// Define game state
let initial-state = {
current-location: "forest",
inventory: [],
visited: {},
game-over: false,
moves: 0,
light-source: false
};
// Helper functions
let has-item? = (state, item) -> do
contains?(state.inventory, item);
end;
let location-has-item? = (location, item) -> do
contains?(get(location, "items", []), item);
end;
let describe-location = (state) -> do
let location = get(locations, state.current-location);
let description = location.description;
// Add visited status
let visited-status = if get(state.visited, state.current-location, 0) > 1 then
"You've been here before."
else
"This is your first time here."
end;
// Check if location has items
let items-desc = if not(empty?(get(location, "items", []))) then
"You see: " ++ join(location.items, ", ")
else
""
end;
// Describe exits
let exits = keys(location.exits) join ", ";
let exits-desc = "Exits: " ++ exits;
// Join all descriptions
filter([description, visited-status, items-desc, exits-desc], -> not(empty?($))) join "\n"
end;
let get-location-items = (state) -> do
let location = get(locations, state.current-location);
get(location, "items", [])
end;
// Game actions
let move = (state, direction) -> do
let location = get(locations, state.current-location);
let exits = get(location, "exits", {});
// Check if direction is valid
if contains?(exits, direction) then
let new-location = get(exits, direction);
let is-dark = new-location == "tunnel" || new-location == "treasure room";
// Check if player has light source for dark areas
if is-dark && not(state.light-source) then
[state, "It's too dark to go that way without a light source."]
else
let new-visited = assoc(
state.visited,
new-location,
inc(state.visited["new-location"] ?? 0)
);
let new-state = assoc(
assoc(
assoc(state, "current-location", new-location),
"visited",
new-visited
),
"moves",
state.moves + 1
);
[new-state, "You move " ++ direction ++ " to the " ++ new-location ++ "."]
end
else
[state, "You can't go that way."]
end
end;
let take! = (state, item) -> do
let items = get-location-items(state);
if contains?(items, item) then
let location = get(locations, state.current-location);
let new-location-items = filter(items, -> $ != item);
let new-inventory = push(state.inventory, item);
// Update game state
let new-locations = assoc(
locations,
state.current-location,
assoc(location, "items", new-location-items)
);
// Special case for torch
let has-light = item == "torch" || state.light-source;
// Update locations and state
let locations = new-locations;
let new-state = assoc(
assoc(
assoc(state, "inventory", new-inventory),
"light-source", has-light
),
"moves",
state.moves + 1
);
[new-state, "You take the " ++ item ++ "."]
else
[state, "There is no " ++ item ++ " here."]
end
end;
let drop! = (state, item) -> do
if has-item?(state, item) then
let location = get(locations, state.current-location);
let location-items = get(location, "items", []);
let new-location-items = push(location-items, item);
let new-inventory = filter(-> $ != item, state.inventory);
// Special case for torch
let still-has-light = not(item == "torch") || contains?(new-inventory, "torch");
// Update locations and state
let new-location = assoc(location, "items", new-location-items);
let locations = assoc(locations, state.current-location, new-location);
let new-state = assoc(
assoc(
assoc(
state, "inventory", new-inventory),
"light-source",
still-has-light
),
"moves",
state.moves + 1
);
[new-state, "You drop the " ++ item ++ "."]
else
[state, "You don't have a " ++ item ++ " in your inventory."]
end
end;
let inventory = (state) -> do
if empty?(state.inventory) then
[state, "Your inventory is empty."]
else
[state, "Inventory: " ++ join(state.inventory, ", ")]
end
end;
let use = (state, item) -> do
match item
case "fishing rod" then
if state.current-location == "river" then
[assoc(state, "moves", state.moves + 1), "You catch a small fish, but it slips away."]
else
[state, "There's no place to use a fishing rod here."]
end
case "torch" then
if has-item?(state, item) then
[
assoc(assoc(state, "light-source", true), "moves", state.moves + 1),
"The torch illuminates the area with a warm glow."
]
else
[state, "You don't have a torch."]
end
case "gold key" then
if has-item?(state, item) && state.current-location == "treasure room" then
[
assoc(
assoc(state, "game-over", true),
"moves",
state.moves + 1
),
"You use the gold key to unlock a secret compartment, revealing a fabulous diamond! You win!"
]
else
[state, "The key doesn't fit anything here."]
end
case "bread" then
if has-item?(state, item) then
let new-inventory = filter(state.inventory, -> $ != item);
[
assoc(
assoc(state, "inventory", new-inventory),
"moves",
state.moves + 1
),
"You eat the bread. It's delicious and nourishing."
]
else
[state, "You don't have any bread."]
end
case "shiny stone" then
if has-item?(state, item) then
[
assoc(state, "moves", state.moves + 1),
"The stone glows with a faint blue light. It seems magical but you're not sure how to use it yet."
]
else
[state, "You don't have a shiny stone."]
end
case "flowers" then
if has-item?(state, item) then
[
assoc(state, "moves", state.moves + 1),
"You smell the flowers. They have a sweet, calming fragrance."
]
else
[state, "You don't have any flowers."]
end
case "ancient map" then
if has-item?(state, item) then
[
assoc(state, "moves", state.moves + 1),
"The map shows the layout of the area. All locations are now marked as visited."
]
else
[state, "You don't have a map."]
end
case "jeweled crown" then
if has-item?(state, item) then
[
assoc(state, "moves", state.moves + 1),
"You place the crown on your head. You feel very regal."
]
else
[state, "You don't have a crown."]
end
end ?? [state, "You can't use that."]
end;
// Command parser
let parse-command = (state, input) -> do
let tokens = lower-case(input) split " ";
let command = first(tokens);
let args = rest(tokens) join " ";
let result = match command
case "go" then
move(state, args)
case "north" then
move(state, "north")
case "south" then
move(state, "south")
case "east" then
move(state, "east")
case "west" then
move(state, "west")
case "take" then
take!(state, args)
case "drop" then
drop!(state, args)
case "inventory" then
inventory(state)
case "i" then
inventory(state)
case "look" then
[assoc(state, "moves", state.moves + 1), describe-location(state)]
case "use" then
use(state, args)
case "help" then
[state, "Commands then go [direction], north, south, east, west, take [item], drop [item], inventory, look, use [item], help, quit"]
case "quit" then
[assoc(state, "game-over", true), "Thanks for playing!"]
end ?? [state, "I don't understand that command. Type 'help' for a list of commands."];
result
end;
// Game loop
let game-loop = (state) -> do
alert!(describe-location(state) ++ "\nWhat do you do? ");
let input = read-line!();
let command_result = parse-command(state, input);
let new-state = first(command_result);
let message = second(command_result);
alert!("\n" ++ message ++ "\n");
if new-state.game-over then
alert!("\nGame over! You made " ++ str(new-state.moves) ++ " moves.");
new-state
else
game-loop(new-state)
end
end;
// Start game
let start-game = () -> do
alert!("=== Lits Adventure Game ===\n" ++ "Type 'help' for a list of commands.\n\n");
game-loop(initial-state)
end;
// Call the function to start the game
start-game()
// Determinant function for square matrices
let determinant = (matrix) -> do
// Check if input is an array
unless array?(matrix) then
throw("Input must be an array");
end;
// Check if matrix is empty
if empty?(matrix) then
throw("Matrix cannot be empty");
end;
let rows = count(matrix);
// Get first row to check column count
let firstRow = first(matrix);
// Check if first row is an array
unless array?(firstRow) then
throw("Input must be a 2D array");
end;
let cols = count(firstRow);
// Ensure matrix is square
if rows != cols then
throw("Matrix must be square");
end;
// Base case: 1x1 matrix
if rows == 1 then
matrix[0][0];
else
// Base case: 2x2 matrix
if rows == 2 then
let a = matrix[0][0];
let b = matrix[0][1];
let c = matrix[1][0];
let d = matrix[1][1];
a * d - b * c;
else
// For larger matrices, use cofactor expansion along first row
// Use reduce to calculate the determinant without mutating variables
reduce(
range(cols),
(acc, j) -> do
let minor = getMinor(matrix, 0, j);
let cofactor = determinant(minor);
let signFactor = even?(j) ? 1 : -1;
let term = signFactor * matrix[0][j] * cofactor;
acc + term;
end,
0,
);
end
end
end;
// Helper function to get minor (submatrix) by removing specific row and column
let getMinor = (matrix, rowToRemove, colToRemove) -> do
// Use map with filter to create the new matrix without mutating
map(
range(count(matrix)),
i -> do
if i == rowToRemove then
null; // This will be filtered out
else
let row = get(matrix, i);
// Filter out the column to remove
map(
range(count(row)),
j -> do
if j == colToRemove then
null; // This will be filtered out
else
get(row, j)
end
end
) filter (item -> item != null);
end
end
) filter (row -> row != null);
end;
// 4x4 invertible matrix
let matrix4x4 = [
[4, 3, 2, 2],
[0, 1, -3, 3],
[0, -1, 3, 3],
[0, 3, 1, 1]
];
determinant(matrix4x4);
// Matrix multiplication with correct syntax
let matrixMultiply = (matrixA, matrixB) -> do
// Check if inputs are arrays
unless array?(matrixA) then throw("First input must be an array") end;
unless array?(matrixB) then throw("Second input must be an array") end;
// Check if matrices are not empty
if empty?(matrixA) || empty?(matrixB) then throw("Matrices cannot be empty") end;
// Check if matrices are 2D arrays
unless array?(first(matrixA)) then throw("First input must be a 2D array") end;
unless array?(first(matrixB)) then throw("Second input must be a 2D array") end;
// Get dimensions
let rowsA = count(matrixA);
let colsA = count(first(matrixA));
let rowsB = count(matrixB);
let colsB = count(first(matrixB));
// Check if all rows have consistent length
unless every?(matrixA, row -> array?(row) && count(row) == colsA) then
throw("First matrix has inconsistent row lengths")
end;
unless every?(matrixB, row -> array?(row) && count(row) == colsB) then
throw("Second matrix has inconsistent row lengths")
end;
// Check if matrices can be multiplied
unless colsA == rowsB then
throw("Matrix dimensions mismatch: first matrix columns must equal second matrix rows");
end;
// Create a row of the result matrix
let createRow = (rowIndex) -> do
for (j in range(colsB)) -> do
reduce(
range(colsA),
(sum, k) -> do
let aValue = matrixA[rowIndex][k];
let bValue = matrixB[k][j];
sum + (aValue * bValue);
end,
0
)
end
end;
// Create the result matrix row by row
for (i in range(rowsA)) -> createRow(i);
end;
let matrixA = [
[1, 2, 3],
[4, 5, 6]
];
let matrixB = [
[7, 8],
[9, 10],
[11, 12]
];
matrixMultiply(matrixA, matrixB);
let formatPhoneNumber = (data) -> do
if string?(data) then
let phoneNumber = data[0] == "+" ? data slice 2 : data;
let length = count(phoneNumber);
cond
case length > 6 then
"(" ++ slice(phoneNumber, 0, 3) ++ ") " ++ slice(phoneNumber, 3, 6) ++ "-" ++ slice(phoneNumber, 6)
case length > 3 then
"(" ++ slice(phoneNumber, 0, 3) ++ ") " ++ slice(phoneNumber, 3)
case length > 0 then
"(" ++ slice(phoneNumber, 0)
end ?? ""
else
""
end
end;
write!(formatPhoneNumber);
write!(formatPhoneNumber(123234));
write!(formatPhoneNumber("123234"));
write!(formatPhoneNumber("1232343456"));
write!(formatPhoneNumber("+11232343456789"));
write!(formatPhoneNumber("+11232343456"));
let factorial = (x) -> do
if x == 1 then
1
else
x * self(x - 1)
end
end;
factorial(5)
let l = [7, 39, 45, 0, 23, 1, 50, 100, 12, -5];
let numberComparer = (a, b) -> do
cond
case a < b then -1
case a > b then 1
end ?? 0
end;
sort(l, numberComparer)
let isoDateString? = (data) -> do
let m = data re-match #"^(\d{4})-(\d{2})-(\d{2})$";
if m then
let [year, month, day] = slice(m, 1) map number;
let leapYear = zero?(year mod 4) && (!zero?(year mod 100) || zero?(year mod 400));
let invalid =
(year < 1900 || year > 2100)
|| (month < 1 || month > 12)
|| (day < 1 || day > 31)
|| day > 30 && (month == 4 || month == 6 || month == 9 || month == 11)
|| month == 2 && (leapYear && day > 29 || !leapYear && day > 28);
not(invalid)
else
false
end
end;
write!(isoDateString?("1978-12-21"));
write!(isoDateString?("197-12-21"));
let label-from-value = (items, value) -> do
let entry = items some (-> value == $["value"]);
if entry == null then
null
else
entry["label"]
end
end;
let items = [
{ label: "Name", value: "name" },
{ label: "Age", value: "age" }
];
label-from-value(items, "name");
let labels-from-values = ($array, $values) -> do
for (
value in $values
let label = do
let entry = $array some -> value == $["value"];
if entry == null then
value
else
entry["label"]
end
end
) -> label
end;
let arr = [
{ label: "Name", value: "name" },
{ label: "Age", value: "age" },
{ label: "Email", value: "email" },
];
labels-from-values(arr, ["name", "age"])
Lits is a lightweight, pure functional programming language designed to embed directly in JavaScript applications. It runs in a secure sandbox — no file system access, no network calls, no mutation of host state — making it safe for user-supplied logic.
Why Lits?
Many applications need runtime programmability: custom formulas, dynamic business rules, scriptable workflows, or plugin systems. Letting users write raw JavaScript is a security risk. Lits solves this by providing a powerful yet sandboxed language that integrates seamlessly with any JavaScript runtime.
Key Features
Safe by design — Lits code runs in a sandbox with zero access to the host environment unless explicitly granted. Users can script without the power to break things.
Pure functional — All data is immutable and all functions are pure. No side effects, no surprises.
Expression-oriented — There are no statements. Everything — from if to let to loop — is an expression that returns a value.
JavaScript interoperability — JavaScript values and functions can be exposed to Lits, and Lits results are plain JavaScript values. Integration is as simple as calling run() with a string of code.
First-class functions — Functions are values. Pass them around, return them from other functions, and compose them freely.
Algebraic notation — Operators can be used as functions, and two-argument functions can be used as operators. Write what reads best.
Rich standard library — Built-in functions for math, strings, collections, regular expressions, and more. Optional modules add vector math, linear algebra, matrix operations, number theory and more.
What Lits Looks Like
Here's a taste of what you can do:
Ready to dive in? Continue to the next page get Lits installed.
Installation
Install Lits from npm:
npm install @mojir/lits
Using Lits as a Library
There are two main entry points: minimal and full.
Minimal Bundle
The minimal bundle gives you the core Lits class, types, and type guards. No modules or reference data are included — this keeps your bundle size small.
import { Lits } from '@mojir/lits'
const lits = new Lits()
lits.run('10 + 20') // => 30This is the right choice when you want the core language and don't need optional modules like vector math or matrix operations.
Full Bundle
The full bundle includes everything from the minimal bundle plus all built-in modules, reference data, and API helpers.
import { Lits, allBuiltinModules } from '@mojir/lits/full'
const lits = new Lits({ modules: allBuiltinModules })
lits.run('let v = import(vector); v.dot([1, 2, 3], [4, 5, 6])') // => 32Individual Modules
You can also import only the modules you need and pass them to the Lits constructor. This gives you fine-grained control over bundle size:
import { Lits } from '@mojir/lits'
import { vectorModule } from '@mojir/lits/modules/vector'
import { matrixModule } from '@mojir/lits/modules/matrix'
const lits = new Lits({ modules: [vectorModule, matrixModule] })Available modules: assertion, grid, random, vector, linear-algebra, matrix, number-theory, math, functional, string, collection, sequence, and bitwise.
Passing Values and Functions
You can expose JavaScript values and functions to Lits code via bindings:
import { Lits } from '@mojir/lits'
const lits = new Lits()
// Expose JavaScript values
lits.run('name ++ " is " ++ str(age)', {
bindings: { name: 'Alice', age: 30 }
}) // => "Alice is 30"
// Expose JavaScript functions
lits.run('greet("World")', {
bindings: {
greet: name => `Hello, ${name}!`,
}
}) // => "Hello, World!"CLI Tool
Install the Lits CLI globally to use it from the command line:
npm install --global @mojir/lits
Interactive REPL
Start an interactive session by running lits with no arguments:
$ lits
Evaluate Expressions
$ lits eval "5 + 3" 8 $ lits eval "[1, 2, 3, 4] filter odd? map inc" [2, 4]
Run Files
$ lits run script.lits
Other Commands
| Command | Description |
|---|---|
| lits eval <expr> | Evaluate a Lits expression |
| lits run <file> | Run a .lits source file |
| lits bundle <entry> | Bundle a multi-file project into a single JSON file |
| lits run-bundle <file> | Run a bundled .json file |
| lits test <file> | Run a .test.lits test file |
| lits repl | Start the interactive REPL (default) |
Try It Here
You don't need to install anything to start learning. This playground runs Lits directly in your browser. Try it:
Lits has a small set of data types. Every value is immutable and fully serializable as JSON.
Numbers
Numbers can be integers or floats. Lits also supports hexadecimal, binary, octal, and scientific notation:
Strings
Strings are enclosed in double quotes and support escape sequences:
Booleans and Null
The boolean values true and false, plus null:
Arrays
Arrays hold ordered collections of any types:
Use spread to merge arrays:
Objects
Objects are key-value maps. Keys are strings:
Spread works in objects too:
Regular Expressions
Regexp literals start with #". No need to escape backslashes:
Type Predicates
Check the type of a value with predicate functions that end in ?:
Structural Equality
Values are compared by structure, not by reference. Two arrays with the same elements are equal:
Lits has a rich set of operators. A unique feature is that operators and functions are interchangeable — operators can be called as functions and two-argument functions can be used as infix operators.
Arithmetic
The standard math operators, with whitespace required:
Comparison
Comparison operators use structural equality (==), not reference equality:
String Concatenation
Use ++ to concatenate strings and sequences:
Logical Operators
&& and || are short-circuit. ?? is the nullish coalescing operator:
Operators as Functions
Every operator can be called in function (prefix) form. Some are variadic:
Functions as Operators
Any two-argument function can be used as an infix operator:
Partial Application
Use _ as a placeholder to create partially applied functions from operators:
Ternary Operator
The ternary ? : works as you would expect:
Functions are first-class values in Lits. You can define them, pass them around, and compose them freely.
Arrow Functions
Define functions with the arrow (->) syntax. For a single parameter, parentheses are optional:
Multiple Parameters
Wrap multiple parameters in parentheses:
No Parameters
Use empty parentheses for functions that take no arguments:
Default Parameters
Parameters can have default values:
Rest Parameters
Collect remaining arguments with the rest (...) syntax:
Short-hand Lambdas
For quick one-liners, use -> with $ (or $1, $2, …) for positional arguments:
Recursion with self
A lambda can call itself using self:
Composition
comp composes functions right-to-left — the rightmost runs first:
Higher-order Functions
Functions can be passed as arguments. This is the heart of functional programming:
Apply
Call a function with an array of arguments using apply:
Lits has three collection types: arrays, objects, and strings. All are immutable — every operation returns a new collection.
Arrays
Arrays are ordered, mixed-type collections. Access elements by index:
Map, Filter, Reduce
The core trio for transforming collections:
More Sequence Operations
Slicing, reversing, sorting, and more:
Building Arrays
Generate arrays with range, repeat, and push:
Objects
Objects are key-value maps. Use get, assoc, and dissoc to work with them:
Merging Objects
Combine objects with merge — later keys win:
Collection Predicates
Test properties of collections:
Since everything in Lits is an expression, all control flow constructs return values.
If / Then / Else
The basic conditional. Without else, the expression returns null when the condition is false:
Unless
unless is a negated if — the body runs when the condition is false:
Cond (Multi-branch)
cond evaluates multiple conditions in order and returns the first match:
Match (Pattern Matching)
match compares a value against specific cases:
Ternary Operator
A compact conditional with ? ::
Logical Short-circuit
&& returns the first falsy value (or the last value). || returns the first truthy value (or the last value):
Nullish Coalescing
?? returns the left side unless it is null. Unlike ||, it does not coalesce false or 0:
Do Blocks
Group multiple expressions with do / end. The block returns its last expression:
Error Handling
Use try / catch to handle errors. throw raises an error:
Destructuring lets you extract values from arrays and objects directly into named bindings. It works in let bindings and function parameters.
Object Destructuring
Pull out properties by name:
Default Values
Provide defaults for missing properties:
Renaming with as
Use as to bind a property to a different variable name:
Nested Object Destructuring
Reach into nested structures:
Array Destructuring
Extract elements by position. Use commas to skip elements:
Array Defaults
Array elements can have defaults too:
Rest Patterns
Collect remaining elements with ...:
Function Parameter Destructuring
Destructure directly in function parameters:
Combining Patterns
Mix array and object destructuring for complex data:
Lits provides for comprehensions for building arrays, doseq for side effects, and loop/recur for tail-recursive iteration.
For Comprehensions
for iterates over a collection and returns a new array:
Filtering with when
Use when to skip elements that don't match a condition:
Early Exit with while
while stops the iteration entirely when the condition becomes false:
Local Bindings with let
Bind intermediate values inside the comprehension:
Multiple Iterators
Multiple bindings produce a cartesian product:
Complex Comprehension
Combine let, when, and while for powerful queries:
Loop / Recur
loop sets up initial bindings, and recur jumps back to the top with new values. This is tail-recursive and efficient:
Self Recursion
Inside a lambda, self refers to the enclosing function:
Doseq (Side Effects)
doseq iterates for side effects and returns null:
Lits has powerful features for building readable data transformation pipelines: the pipe operator, data-as-functions, and operator-style calling.
The Pipe Operator
Use |> to pass a value through a chain of transformations. Use _ to mark where the piped value goes:
Pipe Without Placeholder
When piping to a single-argument function, no placeholder is needed:
Operator Style
Any two-argument function can be used as an infix operator. The left value becomes the first argument:
Chaining Operators
Chain multiple operator-style calls for a fluent reading:
Arrays as Functions
An array can be called as a function with an index to get that element:
Numbers as Functions
A number can be called with a collection to access that index:
Strings as Functions
A string can be called with an object to access that property. This is powerful with map:
Objects as Functions
An object can be called with a key to get the value:
Putting it Together
Combine pipes, data-as-functions, and operators for expressive data processing:
Lits provides domain-specific function libraries as opt-in modules. Import them to access specialized functionality.
Importing a Module
Use import to load a module. It returns an object whose keys are the module's functions:
Destructured Import
Combine import with destructuring to pull out individual functions:
Math Module
Trigonometric, logarithmic, and angle-conversion functions:
Sequence Module
Extended sequence operations — sort-by, distinct, group-by, and more:
Collection Module
Deep access and advanced aggregation:
Vector Module
Statistical functions for number arrays:
Linear Algebra Module
Vector math — dot products, distances, normalization:
Matrix Module
Matrix operations — multiplication, determinant, inverse:
Random Module
Random number generation (functions end with ! to signal side effects):
String Module
Additional string utilities:
Number Theory Module
GCD, LCM, primality-related functions:
Core functions are always available in Lits — no imports needed. They cover the fundamental building blocks of the language: control flow, data manipulation, math, string handling, predicates, and more.
Core functions are organized into the following categories:
special-expression array assertion bitwise collection datatype functional math meta misc object predicate regular-expression sequence shorthand string vector
Here are a few examples to get started:
Lits organizes additional functionality into modules. Unlike core functions which are always available, module functions must be imported before use.
To use a module, use the import special expression
to load the module, then call its functions using dot notation:
Import a single function from a module:
Import the entire module and access multiple functions:
Available modules: assertion, bitwise, collection, convert, functional, grid, linear-algebra, math, matrix, number-theory, random, sequence, string, vector
Evaluation is short-circuited — as soon as a non-null value is found, the remaining expressions are not evaluated.
If all values are null, returns null.
Also works with undefined symbols — if a symbol is undefined, it is treated as null.
If all expressions evaluate to truthy values, the value of the last expression is returned.
If all expressions evaluate to falsy values, the value of the last expression is returned.
| values | Array<any> |
| do body end |
| body | expressions |
The expressions to evaluate.
|
| cond cond-branch cond-branch ... end |
| cond-branch | case test then body |
A branch of the cond expression.
|
| test | expression |
The condition to test.
|
| body | expressions |
The expressions to evaluate if the test is truthy.
|
| defined?(symbol) | → | boolean |
Built-in symbols are always considered defined. For user-defined symbols, checks if the symbol exists in the current scope.
| symbol | any |
| doseq (...binding) -> body |
| binding | loop-var in collection [...let-binding] [where whereExpr] [while whileExp] |
A doseq loop binding
|
| loop-var | symbol |
The name of the loop variable.
|
| collection | any |
The collection to iterate over.
|
| let-binding | let binding |
A let binding to create a local variable.
|
| whereExpr | expression |
An expression that must evaluate to truthy for the loop body to be executed.
|
| whileExp | expression |
An expression that must evaluate to truthy for the loop to continue.
|
| body | expressions |
The expressions to evaluate for each iteration of the loop.
|
| for (...binding) -> body |
| binding | loop-var in collection [...let-binding] [where whereExpr] [while whileExp] |
A for loop binding
|
| loop-var | symbol |
The name of the loop variable.
|
| collection | any |
The collection to iterate over.
|
| let-binding | let binding |
A let binding to create a local variable.
|
| whereExpr | expression |
An expression that must evaluate to truthy for the loop body to be executed.
|
| whileExp | expression |
An expression that must evaluate to truthy for the loop to continue.
|
| body | expressions |
The expressions to evaluate for each iteration of the loop.
|
| if test then true-expr else false-expr |
| if test then true-expr |
| test | expression |
The condition to test.
|
| true-expr | expression |
The expression to evaluate if the test is truthy.
|
| false-expr | expression |
The expression to evaluate if the test is falsy.
|
| import(module-name) |
| let s = value; |
| s | symbol |
The name of the variable to bind.
|
| value | any |
The value to bind to the variable.
|
| loop (bindings) -> body |
If recur is not called, the loop terminates and returns the value of the body expression.
| bindings | binding pairs |
Comma-separated bindings with initial values, e.g. n = 10, acc = 0.
|
| body | expression |
The expression to evaluate repeatedly. Use recur to loop back with new values.
|
| match value match-branch match-branch ... end |
| value | any |
The value to match against patterns.
|
| match-branch | case pattern [when guard] then body |
A branch of the match expression.
|
| pattern | pattern |
A pattern to match: literal, variable, array destructuring, object destructuring, or wildcard (_).
|
| guard | expression |
An optional guard expression that must be truthy for the match to succeed.
|
| body | expressions |
The expressions to evaluate if the pattern matches.
|
| kvps | Array<any> |
key - value pairs, where key is a string
|
| recur(...recur-args) |
| throw(expr) | → | never |
| expr | any |
| try { try-body } catch { catch-body } |
| try { try-body } catch(error) { catch-body } |
| try-body | expressions |
The expressions to try.
|
| error | symbol |
The error variable to bind.
|
| catch-body | expression |
The expressions to evaluate if the try-body throws an error.
|
| unless test then true-expr else false-expr end |
| unless test true-expr end |
| test | expression |
The condition to test.
|
| true-expr | expression |
The expressions to evaluate if the test is falsy.
|
| false-expr | expression |
The expressions to evaluate if the test is truthy.
|
| flatten(x) | → | Array<any> |
| a mapcat b | → | collection |
| mapcat(colls, fun) | → | collection |
| a | collection |
| b | function |
| colls | Array<collection> |
| fun | function |
| moving-fn(arr, windowSize, fn) | → | array |
| a range b | → | Array<number> |
| range(b) | → | Array<number> |
| range(a, b) | → | Array<number> |
| range(a, b, step) | → | Array<number> |
a defaults to 0. step defaults to 1.
| assertion.assert-throws-error(, error-message) | → | null |
| assertion.assert-throws-error(, error-message, message) | → | null |
| bitwise.bit-clear(a, b) | → | integer |
| bitwise.bit-flip(a, b) | → | integer |
| bitwise.bit-not(a) | → | integer |
| a | integer |
| bitwise.bit-set(a, b) | → | integer |
| bitwise.bit-test(a, b) | → | boolean |
| a ++ b | → | collection |
| ++(a) | → | collection |
| ++(a, ...colls) | → | collection |
| a | collection |
| b | collection |
| colls | Array<collection> |
| assoc(coll, key, value) | → | collection |
| assoc(coll, key, value, ...kvs) | → | collection |
| coll | collection | |
| key | string | number | |
| value | any | |
| kvs | Array<any> |
Key-value pairs to associate.
|
| collection.any?(a, b) | → | boolean |
| a | collection |
| b | function |
| collection.assoc-in(coll, ks, value) | → | collection |
If any levels do not exist, objects will be created - and the corresponding keys must be of type string.
| coll | collection |
| ks | Array<number | string> |
| value | any |
| collection.every?(a, b) | → | boolean |
| a | collection |
| b | function |
| collection.filteri(a, b) | → | collection |
| a | collection | |
| b | function |
The function to call for each element in the collection. The function should take two arguments: the element itself and the index.
|
| a | collection |
| b | array |
| not-found | any |
| collection.mapi(a, b) | → | collection |
| a | collection | |
| b | function |
The function to call for each element in the collection. The function should take two arguments: the element itself and the index.
|
| collection.not-any?(a, b) | → | boolean |
| a | collection |
| b | function |
| collection.not-empty(coll) | → | boolean |
| coll | collection | null |
| collection.not-every?(a, b) | → | boolean |
| a | collection |
| b | function |
| collection.reduce-right(coll, fun, initial) | → | any |
| fun | function |
| coll | collection |
| initial | any |
| collection.reducei(coll, fun, initial) | → | any |
| coll | collection | |
| fun | function |
The function to call for each element in the collection. The function should take three arguments: the accumulator, the element itself, and the index.
|
| initial | any |
The initial value to use as the accumulator.
|
| collection.reducei-right(coll, fun, initial) | → | any |
| coll | collection | |
| fun | function |
The function to call for each element in the collection. The function should take three arguments: the accumulator, the element itself, and the index.
|
| initial | any |
The initial value to use as the accumulator.
|
| collection.reductions(coll, fun, initial) | → | Array<any> |
| fun | function |
| coll | collection |
| initial | any |
| collection.reductionsi(coll, fun, initial) | → | Array<any> |
| coll | collection | |
| fun | function |
The function to call for each element in the collection. The function should take three arguments: the accumulator, the element itself, and the index.
|
| initial | any |
The initial value to use as the accumulator.
|
| collection.update(coll, , fun) | → | collection |
| collection.update(coll, , fun, ...fun-args) | → | collection |
| coll | collection |
| key | string | number |
| fun | function |
| fun-args | Array<any> |
| collection.update-in(coll, ks, fun) | → | collection |
| collection.update-in(coll, ks, fun, ...fun-args) | → | collection |
| coll | collection |
| ks | array |
| fun | function |
| fun-args | Array<any> |
| a | collection | null |
| b | string | integer |
| count(coll) | → | number |
| coll | collection | null |
| a filter b | → | collection |
| filter(coll, fun) | → | collection |
| a | collection |
| b | function |
| coll | collection |
| fun | function |
| a | collection | |
| b | string | integer | |
| not-found | any |
Default value to return if b is not found.
|
| a map b | → | collection |
| map(...colls, fun) | → | collection |
| a | collection | |
| b | function | |
| colls | Array<collection> |
At least one.
|
| fun | function |
| reduce(coll, fun, initial) | → | any |
| fun | function |
| coll | collection |
| initial | any |
| convert.acre->cm2(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->ft2(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->hectare(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->in2(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->km2(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->m2(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->mm2(value) | → | number |
| value | number |
Value in acres
|
| convert.acre->yd2(value) | → | number |
| value | number |
Value in acres
|
| convert.angstrom->cm(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->ft(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->in(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->km(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->m(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->mi(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->mm(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->nmi(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->um(value) | → | number |
| value | number |
Value in ångströms
|
| convert.angstrom->yd(value) | → | number |
| value | number |
Value in ångströms
|
| convert.atm->bar(value) | → | number |
| value | number |
Value in atmospheres
|
| convert.atm->kpa(value) | → | number |
| value | number |
Value in atmospheres
|
| convert.atm->mmhg(value) | → | number |
| value | number |
Value in atmospheres
|
| convert.atm->pa(value) | → | number |
| value | number |
Value in atmospheres
|
| convert.atm->psi(value) | → | number |
| value | number |
Value in atmospheres
|
| convert.b->gb(value) | → | number |
| value | number |
Value in bytes
|
| convert.b->kb(value) | → | number |
| value | number |
Value in bytes
|
| convert.b->mb(value) | → | number |
| value | number |
Value in bytes
|
| convert.b->pb(value) | → | number |
| value | number |
Value in bytes
|
| convert.b->tb(value) | → | number |
| value | number |
Value in bytes
|
| convert.bar->atm(value) | → | number |
| value | number |
Value in bars
|
| convert.bar->kpa(value) | → | number |
| value | number |
Value in bars
|
| convert.bar->mmhg(value) | → | number |
| value | number |
Value in bars
|
| convert.bar->pa(value) | → | number |
| value | number |
Value in bars
|
| convert.bar->psi(value) | → | number |
| value | number |
Value in bars
|
| convert.btu->cal(value) | → | number |
| value | number |
Value in British thermal units
|
| convert.btu->j(value) | → | number |
| value | number |
Value in British thermal units
|
| convert.btu->kcal(value) | → | number |
| value | number |
Value in British thermal units
|
| convert.btu->kj(value) | → | number |
| value | number |
Value in British thermal units
|
| convert.btu->kwh(value) | → | number |
| value | number |
Value in British thermal units
|
| convert.btu->wh(value) | → | number |
| value | number |
Value in British thermal units
|
| convert.c->f(value) | → | number |
| value | number |
Value in Celsius
|
| convert.c->k(value) | → | number |
| value | number |
Value in Celsius
|
| convert.cal->btu(value) | → | number |
| value | number |
Value in calories
|
| convert.cal->j(value) | → | number |
| value | number |
Value in calories
|
| convert.cal->kcal(value) | → | number |
| value | number |
Value in calories
|
| convert.cal->kj(value) | → | number |
| value | number |
Value in calories
|
| convert.cal->kwh(value) | → | number |
| value | number |
Value in calories
|
| convert.cal->wh(value) | → | number |
| value | number |
Value in calories
|
| convert.cl->cup(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->dl(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->fl-oz(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->gal(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->l(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->ml(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->pt(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->qt(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->tbsp(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cl->tsp(value) | → | number |
| value | number |
Value in centiliters
|
| convert.cm->angstrom(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->ft(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->in(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->km(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->m(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->mi(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->mm(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->nmi(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->um(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm->yd(value) | → | number |
| value | number |
Value in centimeters
|
| convert.cm2->acre(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->ft2(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->hectare(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->in2(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->km2(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->m2(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->mm2(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cm2->yd2(value) | → | number |
| value | number |
Value in square centimeters
|
| convert.cup->cl(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->dl(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->fl-oz(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->gal(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->l(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->ml(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->pt(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->qt(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->tbsp(value) | → | number |
| value | number |
Value in cups
|
| convert.cup->tsp(value) | → | number |
| value | number |
Value in cups
|
| convert.day->h(value) | → | number |
| value | number |
Value in days
|
| convert.day->min(value) | → | number |
| value | number |
Value in days
|
| convert.day->ms(value) | → | number |
| value | number |
Value in days
|
| convert.day->s(value) | → | number |
| value | number |
Value in days
|
| convert.day->week(value) | → | number |
| value | number |
Value in days
|
| convert.deg->grad(value) | → | number |
| value | number |
Value in degrees
|
| convert.deg->rad(value) | → | number |
| value | number |
Value in degrees
|
| convert.deg->turn(value) | → | number |
| value | number |
Value in degrees
|
| convert.dl->cl(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->cup(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->fl-oz(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->gal(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->l(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->ml(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->pt(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->qt(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->tbsp(value) | → | number |
| value | number |
Value in deciliters
|
| convert.dl->tsp(value) | → | number |
| value | number |
Value in deciliters
|
| convert.f->c(value) | → | number |
| value | number |
Value in Fahrenheit
|
| convert.f->k(value) | → | number |
| value | number |
Value in Fahrenheit
|
| convert.fl-oz->cl(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->cup(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->dl(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->gal(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->l(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->ml(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->pt(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->qt(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->tbsp(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.fl-oz->tsp(value) | → | number |
| value | number |
Value in fluid ounces
|
| convert.ft->angstrom(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->cm(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->in(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->km(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->m(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->mi(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->mm(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->nmi(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->um(value) | → | number |
| value | number |
Value in feet
|
| convert.ft->yd(value) | → | number |
| value | number |
Value in feet
|
| convert.ft/s->km/h(value) | → | number |
| value | number |
Value in feet per second
|
| convert.ft/s->kn(value) | → | number |
| value | number |
Value in feet per second
|
| convert.ft/s->m/s(value) | → | number |
| value | number |
Value in feet per second
|
| convert.ft/s->mph(value) | → | number |
| value | number |
Value in feet per second
|
| convert.ft2->acre(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->cm2(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->hectare(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->in2(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->km2(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->m2(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->mm2(value) | → | number |
| value | number |
Value in square feet
|
| convert.ft2->yd2(value) | → | number |
| value | number |
Value in square feet
|
| convert.g->kg(value) | → | number |
| value | number |
Value in grams
|
| convert.g->lb(value) | → | number |
| value | number |
Value in grams
|
| convert.g->mg(value) | → | number |
| value | number |
Value in grams
|
| convert.g->oz(value) | → | number |
| value | number |
Value in grams
|
| convert.g->st(value) | → | number |
| value | number |
Value in grams
|
| convert.g->t(value) | → | number |
| value | number |
Value in grams
|
| convert.gal->cl(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->cup(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->dl(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->fl-oz(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->l(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->ml(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->pt(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->qt(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->tbsp(value) | → | number |
| value | number |
Value in gallons
|
| convert.gal->tsp(value) | → | number |
| value | number |
Value in gallons
|
| convert.gb->b(value) | → | number |
| value | number |
Value in gigabytes
|
| convert.gb->kb(value) | → | number |
| value | number |
Value in gigabytes
|
| convert.gb->mb(value) | → | number |
| value | number |
Value in gigabytes
|
| convert.gb->pb(value) | → | number |
| value | number |
Value in gigabytes
|
| convert.gb->tb(value) | → | number |
| value | number |
Value in gigabytes
|
| convert.ghz->hz(value) | → | number |
| value | number |
Value in gigahertz
|
| convert.ghz->khz(value) | → | number |
| value | number |
Value in gigahertz
|
| convert.ghz->mhz(value) | → | number |
| value | number |
Value in gigahertz
|
| convert.grad->deg(value) | → | number |
| value | number |
Value in gradians
|
| convert.grad->rad(value) | → | number |
| value | number |
Value in gradians
|
| convert.grad->turn(value) | → | number |
| value | number |
Value in gradians
|
| convert.h->day(value) | → | number |
| value | number |
Value in hours
|
| convert.h->min(value) | → | number |
| value | number |
Value in hours
|
| convert.h->ms(value) | → | number |
| value | number |
Value in hours
|
| convert.h->s(value) | → | number |
| value | number |
Value in hours
|
| convert.h->week(value) | → | number |
| value | number |
Value in hours
|
| convert.hectare->acre(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->cm2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->ft2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->in2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->km2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->m2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->mm2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hectare->yd2(value) | → | number |
| value | number |
Value in hectares
|
| convert.hp->kw(value) | → | number |
| value | number |
Value in horsepower
|
| convert.hp->mw(value) | → | number |
| value | number |
Value in horsepower
|
| convert.hp->w(value) | → | number |
| value | number |
Value in horsepower
|
| convert.hz->ghz(value) | → | number |
| value | number |
Value in hertz
|
| convert.hz->khz(value) | → | number |
| value | number |
Value in hertz
|
| convert.hz->mhz(value) | → | number |
| value | number |
Value in hertz
|
| convert.in->angstrom(value) | → | number |
| value | number |
Value in inches
|
| convert.in->cm(value) | → | number |
| value | number |
Value in inches
|
| convert.in->ft(value) | → | number |
| value | number |
Value in inches
|
| convert.in->km(value) | → | number |
| value | number |
Value in inches
|
| convert.in->m(value) | → | number |
| value | number |
Value in inches
|
| convert.in->mi(value) | → | number |
| value | number |
Value in inches
|
| convert.in->mm(value) | → | number |
| value | number |
Value in inches
|
| convert.in->nmi(value) | → | number |
| value | number |
Value in inches
|
| convert.in->um(value) | → | number |
| value | number |
Value in inches
|
| convert.in->yd(value) | → | number |
| value | number |
Value in inches
|
| convert.in2->acre(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->cm2(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->ft2(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->hectare(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->km2(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->m2(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->mm2(value) | → | number |
| value | number |
Value in square inches
|
| convert.in2->yd2(value) | → | number |
| value | number |
Value in square inches
|
| convert.j->btu(value) | → | number |
| value | number |
Value in joules
|
| convert.j->cal(value) | → | number |
| value | number |
Value in joules
|
| convert.j->kcal(value) | → | number |
| value | number |
Value in joules
|
| convert.j->kj(value) | → | number |
| value | number |
Value in joules
|
| convert.j->kwh(value) | → | number |
| value | number |
Value in joules
|
| convert.j->wh(value) | → | number |
| value | number |
Value in joules
|
| convert.k->c(value) | → | number |
| value | number |
Value in Kelvin
|
| convert.k->f(value) | → | number |
| value | number |
Value in Kelvin
|
| convert.kb->b(value) | → | number |
| value | number |
Value in kilobytes
|
| convert.kb->gb(value) | → | number |
| value | number |
Value in kilobytes
|
| convert.kb->mb(value) | → | number |
| value | number |
Value in kilobytes
|
| convert.kb->pb(value) | → | number |
| value | number |
Value in kilobytes
|
| convert.kb->tb(value) | → | number |
| value | number |
Value in kilobytes
|
| convert.kcal->btu(value) | → | number |
| value | number |
Value in kilocalories
|
| convert.kcal->cal(value) | → | number |
| value | number |
Value in kilocalories
|
| convert.kcal->j(value) | → | number |
| value | number |
Value in kilocalories
|
| convert.kcal->kj(value) | → | number |
| value | number |
Value in kilocalories
|
| convert.kcal->kwh(value) | → | number |
| value | number |
Value in kilocalories
|
| convert.kcal->wh(value) | → | number |
| value | number |
Value in kilocalories
|
| convert.kg->g(value) | → | number |
| value | number |
Value in kilograms
|
| convert.kg->lb(value) | → | number |
| value | number |
Value in kilograms
|
| convert.kg->mg(value) | → | number |
| value | number |
Value in kilograms
|
| convert.kg->oz(value) | → | number |
| value | number |
Value in kilograms
|
| convert.kg->st(value) | → | number |
| value | number |
Value in kilograms
|
| convert.kg->t(value) | → | number |
| value | number |
Value in kilograms
|
| convert.khz->ghz(value) | → | number |
| value | number |
Value in kilohertz
|
| convert.khz->hz(value) | → | number |
| value | number |
Value in kilohertz
|
| convert.khz->mhz(value) | → | number |
| value | number |
Value in kilohertz
|
| convert.kj->btu(value) | → | number |
| value | number |
Value in kilojoules
|
| convert.kj->cal(value) | → | number |
| value | number |
Value in kilojoules
|
| convert.kj->j(value) | → | number |
| value | number |
Value in kilojoules
|
| convert.kj->kcal(value) | → | number |
| value | number |
Value in kilojoules
|
| convert.kj->kwh(value) | → | number |
| value | number |
Value in kilojoules
|
| convert.kj->wh(value) | → | number |
| value | number |
Value in kilojoules
|
| convert.km->angstrom(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->cm(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->ft(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->in(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->m(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->mi(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->mm(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->nmi(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->um(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km->yd(value) | → | number |
| value | number |
Value in kilometers
|
| convert.km/h->ft/s(value) | → | number |
| value | number |
Value in kilometers per hour
|
| convert.km/h->kn(value) | → | number |
| value | number |
Value in kilometers per hour
|
| convert.km/h->m/s(value) | → | number |
| value | number |
Value in kilometers per hour
|
| convert.km/h->mph(value) | → | number |
| value | number |
Value in kilometers per hour
|
| convert.km2->acre(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->cm2(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->ft2(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->hectare(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->in2(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->m2(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->mm2(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.km2->yd2(value) | → | number |
| value | number |
Value in square kilometers
|
| convert.kn->ft/s(value) | → | number |
| value | number |
Value in knots
|
| convert.kn->km/h(value) | → | number |
| value | number |
Value in knots
|
| convert.kn->m/s(value) | → | number |
| value | number |
Value in knots
|
| convert.kn->mph(value) | → | number |
| value | number |
Value in knots
|
| convert.kpa->atm(value) | → | number |
| value | number |
Value in kilopascals
|
| convert.kpa->bar(value) | → | number |
| value | number |
Value in kilopascals
|
| convert.kpa->mmhg(value) | → | number |
| value | number |
Value in kilopascals
|
| convert.kpa->pa(value) | → | number |
| value | number |
Value in kilopascals
|
| convert.kpa->psi(value) | → | number |
| value | number |
Value in kilopascals
|
| convert.kw->hp(value) | → | number |
| value | number |
Value in kilowatts
|
| convert.kw->mw(value) | → | number |
| value | number |
Value in kilowatts
|
| convert.kw->w(value) | → | number |
| value | number |
Value in kilowatts
|
| convert.kwh->btu(value) | → | number |
| value | number |
Value in kilowatt-hours
|
| convert.kwh->cal(value) | → | number |
| value | number |
Value in kilowatt-hours
|
| convert.kwh->j(value) | → | number |
| value | number |
Value in kilowatt-hours
|
| convert.kwh->kcal(value) | → | number |
| value | number |
Value in kilowatt-hours
|
| convert.kwh->kj(value) | → | number |
| value | number |
Value in kilowatt-hours
|
| convert.kwh->wh(value) | → | number |
| value | number |
Value in kilowatt-hours
|
| convert.l->cl(value) | → | number |
| value | number |
Value in liters
|
| convert.l->cup(value) | → | number |
| value | number |
Value in liters
|
| convert.l->dl(value) | → | number |
| value | number |
Value in liters
|
| convert.l->fl-oz(value) | → | number |
| value | number |
Value in liters
|
| convert.l->gal(value) | → | number |
| value | number |
Value in liters
|
| convert.l->ml(value) | → | number |
| value | number |
Value in liters
|
| convert.l->pt(value) | → | number |
| value | number |
Value in liters
|
| convert.l->qt(value) | → | number |
| value | number |
Value in liters
|
| convert.l->tbsp(value) | → | number |
| value | number |
Value in liters
|
| convert.l->tsp(value) | → | number |
| value | number |
Value in liters
|
| convert.lb->g(value) | → | number |
| value | number |
Value in pounds
|
| convert.lb->kg(value) | → | number |
| value | number |
Value in pounds
|
| convert.lb->mg(value) | → | number |
| value | number |
Value in pounds
|
| convert.lb->oz(value) | → | number |
| value | number |
Value in pounds
|
| convert.lb->st(value) | → | number |
| value | number |
Value in pounds
|
| convert.lb->t(value) | → | number |
| value | number |
Value in pounds
|
| convert.m->angstrom(value) | → | number |
| value | number |
Value in meters
|
| convert.m->cm(value) | → | number |
| value | number |
Value in meters
|
| convert.m->ft(value) | → | number |
| value | number |
Value in meters
|
| convert.m->in(value) | → | number |
| value | number |
Value in meters
|
| convert.m->km(value) | → | number |
| value | number |
Value in meters
|
| convert.m->mi(value) | → | number |
| value | number |
Value in meters
|
| convert.m->mm(value) | → | number |
| value | number |
Value in meters
|
| convert.m->nmi(value) | → | number |
| value | number |
Value in meters
|
| convert.m->um(value) | → | number |
| value | number |
Value in meters
|
| convert.m->yd(value) | → | number |
| value | number |
Value in meters
|
| convert.m/s->ft/s(value) | → | number |
| value | number |
Value in meters per second
|
| convert.m/s->km/h(value) | → | number |
| value | number |
Value in meters per second
|
| convert.m/s->kn(value) | → | number |
| value | number |
Value in meters per second
|
| convert.m/s->mph(value) | → | number |
| value | number |
Value in meters per second
|
| convert.m2->acre(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->cm2(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->ft2(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->hectare(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->in2(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->km2(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->mm2(value) | → | number |
| value | number |
Value in square meters
|
| convert.m2->yd2(value) | → | number |
| value | number |
Value in square meters
|
| convert.mb->b(value) | → | number |
| value | number |
Value in megabytes
|
| convert.mb->gb(value) | → | number |
| value | number |
Value in megabytes
|
| convert.mb->kb(value) | → | number |
| value | number |
Value in megabytes
|
| convert.mb->pb(value) | → | number |
| value | number |
Value in megabytes
|
| convert.mb->tb(value) | → | number |
| value | number |
Value in megabytes
|
| convert.mg->g(value) | → | number |
| value | number |
Value in milligrams
|
| convert.mg->kg(value) | → | number |
| value | number |
Value in milligrams
|
| convert.mg->lb(value) | → | number |
| value | number |
Value in milligrams
|
| convert.mg->oz(value) | → | number |
| value | number |
Value in milligrams
|
| convert.mg->st(value) | → | number |
| value | number |
Value in milligrams
|
| convert.mg->t(value) | → | number |
| value | number |
Value in milligrams
|
| convert.mhz->ghz(value) | → | number |
| value | number |
Value in megahertz
|
| convert.mhz->hz(value) | → | number |
| value | number |
Value in megahertz
|
| convert.mhz->khz(value) | → | number |
| value | number |
Value in megahertz
|
| convert.mi->angstrom(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->cm(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->ft(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->in(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->km(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->m(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->mm(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->nmi(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->um(value) | → | number |
| value | number |
Value in miles
|
| convert.mi->yd(value) | → | number |
| value | number |
Value in miles
|
| convert.min->day(value) | → | number |
| value | number |
Value in minutes
|
| convert.min->h(value) | → | number |
| value | number |
Value in minutes
|
| convert.min->ms(value) | → | number |
| value | number |
Value in minutes
|
| convert.min->s(value) | → | number |
| value | number |
Value in minutes
|
| convert.min->week(value) | → | number |
| value | number |
Value in minutes
|
| convert.ml->cl(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->cup(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->dl(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->fl-oz(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->gal(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->l(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->pt(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->qt(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->tbsp(value) | → | number |
| value | number |
Value in milliliters
|
| convert.ml->tsp(value) | → | number |
| value | number |
Value in milliliters
|
| convert.mm->angstrom(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->cm(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->ft(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->in(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->km(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->m(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->mi(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->nmi(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->um(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm->yd(value) | → | number |
| value | number |
Value in millimeters
|
| convert.mm2->acre(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->cm2(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->ft2(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->hectare(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->in2(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->km2(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->m2(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mm2->yd2(value) | → | number |
| value | number |
Value in square millimeters
|
| convert.mmhg->atm(value) | → | number |
| value | number |
Value in millimeters of mercury
|
| convert.mmhg->bar(value) | → | number |
| value | number |
Value in millimeters of mercury
|
| convert.mmhg->kpa(value) | → | number |
| value | number |
Value in millimeters of mercury
|
| convert.mmhg->pa(value) | → | number |
| value | number |
Value in millimeters of mercury
|
| convert.mmhg->psi(value) | → | number |
| value | number |
Value in millimeters of mercury
|
| convert.mph->ft/s(value) | → | number |
| value | number |
Value in miles per hour
|
| convert.mph->km/h(value) | → | number |
| value | number |
Value in miles per hour
|
| convert.mph->kn(value) | → | number |
| value | number |
Value in miles per hour
|
| convert.mph->m/s(value) | → | number |
| value | number |
Value in miles per hour
|
| convert.ms->day(value) | → | number |
| value | number |
Value in milliseconds
|
| convert.ms->h(value) | → | number |
| value | number |
Value in milliseconds
|
| convert.ms->min(value) | → | number |
| value | number |
Value in milliseconds
|
| convert.ms->s(value) | → | number |
| value | number |
Value in milliseconds
|
| convert.ms->week(value) | → | number |
| value | number |
Value in milliseconds
|
| convert.mw->hp(value) | → | number |
| value | number |
Value in megawatts
|
| convert.mw->kw(value) | → | number |
| value | number |
Value in megawatts
|
| convert.mw->w(value) | → | number |
| value | number |
Value in megawatts
|
| convert.nmi->angstrom(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->cm(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->ft(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->in(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->km(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->m(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->mi(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->mm(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->um(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.nmi->yd(value) | → | number |
| value | number |
Value in nautical miles
|
| convert.oz->g(value) | → | number |
| value | number |
Value in ounces
|
| convert.oz->kg(value) | → | number |
| value | number |
Value in ounces
|
| convert.oz->lb(value) | → | number |
| value | number |
Value in ounces
|
| convert.oz->mg(value) | → | number |
| value | number |
Value in ounces
|
| convert.oz->st(value) | → | number |
| value | number |
Value in ounces
|
| convert.oz->t(value) | → | number |
| value | number |
Value in ounces
|
| convert.pa->atm(value) | → | number |
| value | number |
Value in pascals
|
| convert.pa->bar(value) | → | number |
| value | number |
Value in pascals
|
| convert.pa->kpa(value) | → | number |
| value | number |
Value in pascals
|
| convert.pa->mmhg(value) | → | number |
| value | number |
Value in pascals
|
| convert.pa->psi(value) | → | number |
| value | number |
Value in pascals
|
| convert.pb->b(value) | → | number |
| value | number |
Value in petabytes
|
| convert.pb->gb(value) | → | number |
| value | number |
Value in petabytes
|
| convert.pb->kb(value) | → | number |
| value | number |
Value in petabytes
|
| convert.pb->mb(value) | → | number |
| value | number |
Value in petabytes
|
| convert.pb->tb(value) | → | number |
| value | number |
Value in petabytes
|
| convert.psi->atm(value) | → | number |
| value | number |
Value in pounds per square inch
|
| convert.psi->bar(value) | → | number |
| value | number |
Value in pounds per square inch
|
| convert.psi->kpa(value) | → | number |
| value | number |
Value in pounds per square inch
|
| convert.psi->mmhg(value) | → | number |
| value | number |
Value in pounds per square inch
|
| convert.psi->pa(value) | → | number |
| value | number |
Value in pounds per square inch
|
| convert.pt->cl(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->cup(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->dl(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->fl-oz(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->gal(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->l(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->ml(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->qt(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->tbsp(value) | → | number |
| value | number |
Value in pints
|
| convert.pt->tsp(value) | → | number |
| value | number |
Value in pints
|
| convert.qt->cl(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->cup(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->dl(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->fl-oz(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->gal(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->l(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->ml(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->pt(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->tbsp(value) | → | number |
| value | number |
Value in quarts
|
| convert.qt->tsp(value) | → | number |
| value | number |
Value in quarts
|
| convert.rad->deg(value) | → | number |
| value | number |
Value in radians
|
| convert.rad->grad(value) | → | number |
| value | number |
Value in radians
|
| convert.rad->turn(value) | → | number |
| value | number |
Value in radians
|
| convert.s->day(value) | → | number |
| value | number |
Value in seconds
|
| convert.s->h(value) | → | number |
| value | number |
Value in seconds
|
| convert.s->min(value) | → | number |
| value | number |
Value in seconds
|
| convert.s->ms(value) | → | number |
| value | number |
Value in seconds
|
| convert.s->week(value) | → | number |
| value | number |
Value in seconds
|
| convert.st->g(value) | → | number |
| value | number |
Value in stones
|
| convert.st->kg(value) | → | number |
| value | number |
Value in stones
|
| convert.st->lb(value) | → | number |
| value | number |
Value in stones
|
| convert.st->mg(value) | → | number |
| value | number |
Value in stones
|
| convert.st->oz(value) | → | number |
| value | number |
Value in stones
|
| convert.st->t(value) | → | number |
| value | number |
Value in stones
|
| convert.t->g(value) | → | number |
| value | number |
Value in metric tons
|
| convert.t->kg(value) | → | number |
| value | number |
Value in metric tons
|
| convert.t->lb(value) | → | number |
| value | number |
Value in metric tons
|
| convert.t->mg(value) | → | number |
| value | number |
Value in metric tons
|
| convert.t->oz(value) | → | number |
| value | number |
Value in metric tons
|
| convert.t->st(value) | → | number |
| value | number |
Value in metric tons
|
| convert.tb->b(value) | → | number |
| value | number |
Value in terabytes
|
| convert.tb->gb(value) | → | number |
| value | number |
Value in terabytes
|
| convert.tb->kb(value) | → | number |
| value | number |
Value in terabytes
|
| convert.tb->mb(value) | → | number |
| value | number |
Value in terabytes
|
| convert.tb->pb(value) | → | number |
| value | number |
Value in terabytes
|
| convert.tbsp->cl(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->cup(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->dl(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->fl-oz(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->gal(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->l(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->ml(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->pt(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->qt(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tbsp->tsp(value) | → | number |
| value | number |
Value in tablespoons
|
| convert.tsp->cl(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->cup(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->dl(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->fl-oz(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->gal(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->l(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->ml(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->pt(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->qt(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.tsp->tbsp(value) | → | number |
| value | number |
Value in teaspoons
|
| convert.turn->deg(value) | → | number |
| value | number |
Value in turns
|
| convert.turn->grad(value) | → | number |
| value | number |
Value in turns
|
| convert.turn->rad(value) | → | number |
| value | number |
Value in turns
|
| convert.um->angstrom(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->cm(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->ft(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->in(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->km(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->m(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->mi(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->mm(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->nmi(value) | → | number |
| value | number |
Value in micrometers
|
| convert.um->yd(value) | → | number |
| value | number |
Value in micrometers
|
| convert.w->hp(value) | → | number |
| value | number |
Value in watts
|
| convert.w->kw(value) | → | number |
| value | number |
Value in watts
|
| convert.w->mw(value) | → | number |
| value | number |
Value in watts
|
| convert.week->day(value) | → | number |
| value | number |
Value in weeks
|
| convert.week->h(value) | → | number |
| value | number |
Value in weeks
|
| convert.week->min(value) | → | number |
| value | number |
Value in weeks
|
| convert.week->ms(value) | → | number |
| value | number |
Value in weeks
|
| convert.week->s(value) | → | number |
| value | number |
Value in weeks
|
| convert.wh->btu(value) | → | number |
| value | number |
Value in watt-hours
|
| convert.wh->cal(value) | → | number |
| value | number |
Value in watt-hours
|
| convert.wh->j(value) | → | number |
| value | number |
Value in watt-hours
|
| convert.wh->kcal(value) | → | number |
| value | number |
Value in watt-hours
|
| convert.wh->kj(value) | → | number |
| value | number |
Value in watt-hours
|
| convert.wh->kwh(value) | → | number |
| value | number |
Value in watt-hours
|
| convert.yd->angstrom(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->cm(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->ft(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->in(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->km(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->m(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->mi(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->mm(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->nmi(value) | → | number |
| value | number |
Value in yards
|
| convert.yd->um(value) | → | number |
| value | number |
Value in yards
|
| convert.yd2->acre(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->cm2(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->ft2(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->hectare(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->in2(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->km2(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->m2(value) | → | number |
| value | number |
Value in square yards
|
| convert.yd2->mm2(value) | → | number |
| value | number |
Value in square yards
|
The returned function takes a variable number of arguments, applies the rightmost function to the args, the next function (right-to-left) to the result, etc.
| constantly(x) | → | function |
| x | any |
| functional.complement(fun) | → | function |
| fun | function |
| identity(x) | → | any |
| x | any |
| grid.cell-every?(a, b) | → | boolean |
| grid.cell-map(a, b) | → | grid |
| grid.cell-mapi(a, b) | → | grid |
| grid.cell-reduce(g, fn, initial-value) | → | any |
| g | grid |
The grid to reduce.
|
| fn | function |
The function to reduce the grid. It takes two arguments: the accumulator and the current element.
|
| initial-value | any |
The initial value for the accumulator.
|
| grid.cell-reducei(g, fn, initial-value) | → | any |
| g | grid |
The grid to reduce.
|
| fn | function |
The function to reduce the grid. It takes four arguments: the accumulator, the current element, the row index, and the column index.
|
| initial-value | any |
The initial value for the accumulator.
|
| grid.col(a, b) | → | any |
| grid.concat-cols(a, b) | → | grid |
| grid.concat-rows(a, b) | → | grid |
| g | grid |
The grid to slice.
|
| begin | vector |
The starting index of the slice as a vector of two numbers: [row, col].
|
| stop | vector |
Optional ending index of the slice as a vector of two numbers: [row, col].
|
| grid.every-col?(a, b) | → | boolean |
| grid.every-row?(a, b) | → | boolean |
| grid.fill(rows, cols, value) | → | grid |
| rows | integer |
The number of rows in the grid.
|
| cols | integer |
The number of columns in the grid.
|
| value | any |
The value to fill the grid with.
|
| grid.flip-h(g) | → | grid |
| g | grid |
The grid to flip horizontally.
|
| grid.flip-v(g) | → | grid |
| g | grid |
The grid to flip vertically.
|
| grid.from-array(a, b) | → | grid |
| grid.generate(rows, cols, fn) | → | grid |
| rows | number |
The number of rows in the grid.
|
| cols | number |
The number of columns in the grid.
|
| fn | function |
The function to generate the grid. It takes two arguments: the row index and the column index.
|
| grid.pop-col(g) | → | grid |
| g | grid |
The grid to pop a column from.
|
| grid.pop-row(g) | → | grid |
| g | grid |
The grid to pop a row from.
|
| grid.push-cols(g, ...cols) | → | grid |
| g | grid |
The grid to push columns into.
|
| cols | Array<array> |
The columns to push into the grid.
|
| grid.push-rows(g, ...rows) | → | grid |
| grid.reshape(a, b) | → | grid |
| grid.rotate(a, b) | → | grid |
| grid.row(a, b) | → | any |
| grid.shape(g) | → | vector |
| g | grid |
The grid to get the shape of.
|
| grid.shift-col(g) | → | grid |
| g | grid |
The grid to shift a column from.
|
| grid.shift-row(g) | → | grid |
| g | grid |
The grid to shift a row from.
|
| g | grid |
The grid to slice.
|
| begin | number |
The starting index of the slice.
|
| stop | number |
Optional ending index of the slice.
|
| g | grid |
The grid to slice.
|
| begin | number |
The starting index of the slice.
|
| stop | number |
Optional ending index of the slice.
|
| grid.some-col?(a, b) | → | boolean |
| grid.some-row?(a, b) | → | boolean |
| grid.some?(a, b) | → | boolean |
| grid.splice-cols(g, begin, deleteCount) | → | grid |
| grid.splice-cols(g, begin, deleteCount, ...items) | → | grid |
| g | grid |
The grid to splice.
|
| begin | number |
The starting index of the splice.
|
| deleteCount | number |
The number of columns to delete.
|
| items | Array<array> |
The columns to insert.
|
| grid.splice-rows(g, begin, deleteCount) | → | grid |
| grid.splice-rows(g, begin, deleteCount, ...items) | → | grid |
| g | grid |
The grid to splice.
|
| begin | number |
The starting index of the splice.
|
| deleteCount | number |
The number of rows to delete.
|
| items | Array<array> |
The rows to insert.
|
| grid.transpose(g) | → | grid |
| g | grid |
The grid to transpose.
|
| grid.unshift-cols(g, ...cols) | → | grid |
| g | grid |
The grid to unshift columns into.
|
| cols | Array<array> |
The columns to unshift into the grid.
|
| grid.unshift-rows(g, ...rows) | → | grid |
| g | grid |
The grid to unshift rows into.
|
| rows | Array<array> |
The rows to unshift into the grid.
|
| linear-algebra.angle(a, b) | → | number |
| linear-algebra.autocorrelation(a, b) | → | vector |
| a | vector |
Vector to calculate the autocorrelation for.
|
| b | integer |
Lag value for the autocorrelation.
|
| linear-algebra.chebyshev-distance(a, b) | → | number |
| linear-algebra.chebyshev-norm(v) | → | number |
| v | vector |
Vector to calculate the norm for.
|
| linear-algebra.collinear?(a, b) | → | boolean |
| linear-algebra.corr(a, b) | → | number |
| linear-algebra.cosine-similarity(a, b) | → | number |
| linear-algebra.cov(a, b) | → | number |
| linear-algebra.cross(a, b) | → | vector |
| linear-algebra.cross-correlation(a, b, lag) | → | vector |
| linear-algebra.dot(a, b) | → | number |
| linear-algebra.euclidean-distance(a, b) | → | number |
| linear-algebra.euclidean-norm(v) | → | number |
| v | vector |
Vector to calculate the norm for.
|
| linear-algebra.from-polar(polar) | → | vector |
| polar | vector |
Polar coordinates to convert.
|
| linear-algebra.hamming-distance(a, b) | → | integer |
| linear-algebra.hamming-norm(v) | → | integer |
| v | vector |
Vector to calculate the norm for.
|
| linear-algebra.kendall-tau(a, b) | → | number |
| linear-algebra.lerp(a, b, t) | → | vector |
| linear-algebra.manhattan-distance(a, b) | → | number |
| linear-algebra.manhattan-norm(v) | → | number |
| v | vector |
Vector to calculate the norm for.
|
| linear-algebra.minkowski-distance(a, b, p) | → | number |
| linear-algebra.minkowski-norm(a, b) | → | number |
| linear-algebra.normalize-l1(v) | → | number |
| v | vector |
Vector to normalize.
|
| linear-algebra.normalize-l2(v) | → | number |
| v | vector |
Vector to normalize.
|
| linear-algebra.normalize-log(v) | → | number |
| v | vector |
Vector to normalize.
|
| linear-algebra.normalize-minmax(v) | → | number |
| v | vector |
Vector to normalize.
|
| linear-algebra.normalize-robust(v) | → | number |
| v | vector |
Vector to normalize.
|
| linear-algebra.normalize-zscore(v) | → | number |
| v | vector |
Vector to normalize.
|
| linear-algebra.orthogonal?(a, b) | → | boolean |
| linear-algebra.parallel?(a, b) | → | boolean |
| linear-algebra.pearson-corr(a, b) | → | number |
| linear-algebra.projection(a, b) | → | vector |
| linear-algebra.reflect(a, b) | → | vector |
| linear-algebra.refract(vector, axis, eta) | → | vector |
| vector | vector |
Vector to refract.
|
| axis | vector |
Axis of refraction.
|
| eta | number |
Refraction index.
|
| linear-algebra.rotate2d(a, b) | → | vector |
| linear-algebra.rotate3d(v, axis, radians) | → | vector |
| linear-algebra.rref(m) | → | matrix |
| m | matrix |
Matrix to calculate the RREF for.
|
| linear-algebra.solve(a, b) | → | vector |
| linear-algebra.spearman-corr(a, b) | → | number |
| linear-algebra.to-polar(vector) | → | vector |
| vector | vector |
2D Vector to convert.
|
| inc(x) | → | number |
| a round b | → | number | vector | matrix |
| round(a) | → | number | vector | matrix |
| round(a, b) | → | number | vector | matrix |
| matrix.adj(m) | → | matrix |
| m | matrix |
The matrix to calculate the adjugate of.
|
| matrix.band(n, lband, uband) | → | matrix |
| n | integer |
The size of the banded matrix.
|
| lband | integer |
The lower band index.
|
| uband | integer |
The upper band index.
|
| matrix.banded?(m, lband, uband) | → | boolean |
| m | matrix |
The matrix to check for banded property.
|
| lband | integer |
The lower band index.
|
| uband | integer |
The upper band index.
|
| matrix.cofactor(m) | → | matrix |
| m | matrix |
The matrix to calculate the cofactor of.
|
| matrix.det(m) | → | number |
| m | matrix |
The matrix to calculate the determinant of.
|
| matrix.diagonal?(m) | → | boolean |
| m | matrix |
The matrix to check for diagonal property.
|
| matrix.frobenius-norm(m) | → | number |
| m | matrix |
The matrix to calculate the Frobenius norm of.
|
| matrix.hilbert(n) | → | matrix |
| n | integer |
The size of the Hilbert matrix.
|
| matrix.identity?(m) | → | boolean |
| m | matrix |
The matrix to check for identity property.
|
| matrix.inf-norm(m) | → | number |
| m | matrix |
The matrix to calculate the infinity norm of.
|
| matrix.inv(m) | → | matrix |
| m | matrix |
The matrix to calculate the inverse of.
|
| matrix.invertible?(m) | → | boolean |
| m | matrix |
The matrix to check for invertibility.
|
| matrix.lower-triangular?(m) | → | boolean |
| m | matrix |
The matrix to check for lower triangularity.
|
| matrix.max-norm(m) | → | number |
| m | matrix |
The matrix to calculate the max norm of.
|
| matrix.minor(m, row, col) | → | matrix |
| m | matrix |
The matrix to calculate the minor of.
|
| row | integer |
The row index of the element to calculate the minor for.
|
| col | integer |
The column index of the element to calculate the minor for.
|
| matrix.mul(a, b) | → | matrix |
| matrix.one-norm(m) | → | number |
| m | matrix |
The matrix to calculate the one-norm of.
|
| matrix.orthogonal-matrix?(m) | → | boolean |
| m | matrix |
The matrix to check for orthogonality.
|
| matrix.rank(m) | → | number |
| m | matrix |
The matrix to calculate the rank of.
|
| matrix.square?(m) | → | boolean |
| m | matrix |
The matrix to check for square property.
|
| matrix.symmetric?(m) | → | boolean |
| m | matrix |
The matrix to check for symmetry.
|
| matrix.trace(m) | → | number |
| m | matrix |
The matrix to calculate the trace of.
|
| matrix.triangular?(m) | → | boolean |
| m | matrix |
The matrix to check for triangularity.
|
| matrix.upper-triangular?(m) | → | boolean |
| m | matrix |
The matrix to check for upper triangularity.
|
| matrix.vandermonde(v) | → | matrix |
| v | vector |
The vector to generate the Vandermonde matrix from.
|
| arity(fun) | → | object |
| fun | function |
| doc(fun) | → | string |
| fun | function |
| boolean(x) | → | boolean |
| x | any |
| epoch->iso-date(ms) | → | string |
| ms | number |
| iso-date->epoch(iso) | → | number |
| iso | string |
| json-parse(x) | → | any |
| x | string |
| not(x) | → | boolean |
| x | any |
| write!(...values) | → | any |
| values | Array<any> |
| number-theory.abundant-nth(n) | → | integer |
| n | integer |
The index of the number in the sequence.
|
| number-theory.abundant-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.abundant-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.abundant?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.amicable?(a, b) | → | boolean |
| number-theory.arithmetic-nth(start, step, n) | → | integer |
| start | number |
The starting term of the sequence.
|
| step | number |
The common difference of the sequence.
|
| n | integer |
The index of the term to generate.
|
| number-theory.arithmetic-seq(start, step, length) | → | Array<integer> |
| start | number |
The starting term of the sequence.
|
| step | number |
The common difference of the sequence.
|
| length | integer |
The length of the sequence to generate.
|
| number-theory.arithmetic-take-while(start, step, takeWhile) | → | Array<integer> |
| start | number |
The starting term of the sequence.
|
| step | number |
The common difference of the sequence.
|
| takeWhile | function |
A function that takes a number and an index and returns a boolean.
|
| number-theory.arithmetic?(start, step, n) | → | boolean |
| start | number |
The starting term of the sequence.
|
| step | number |
The common difference of the sequence.
|
| n | integer |
The number to check.
|
| number-theory.bell-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 22 (the maximum length of the pre-calculated bell numbers).
|
| number-theory.bell-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.bell?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.bernoulli-nth(n) | → | number |
| n | integer |
The index of the term to generate.
|
| number-theory.bernoulli-seq(length) | → | Array<number> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.bernoulli-take-while(takeWhile) | → | Array<number> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.carmichael-lambda(n) | → | integer |
| n | integer |
The number to calculate the Carmichael function for.
|
| number-theory.cartesian-product(sets) | → | Array<array> |
| sets | Array<array> |
The input collections to calculate the Cartesian product from.
|
| a | array | |
| b | array |
| number-theory.catalan-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 30 (the maximum length of the pre-calculated catalan numbers).
|
| number-theory.catalan-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.catalan?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.chinese-remainder(remainders, moduli) | → | integer |
| remainders | Array<integer> |
The remainders of the congruences.
|
| moduli | Array<integer> |
The moduli of the congruences.
|
| a | array | |
| b | array |
| number-theory.collatz-seq(start) | → | Array<integer> |
| start | integer |
The starting integer for the collatz sequence.
|
| number-theory.combinations(set, n) | → | Array<array> |
| set | Array<array> |
The input collection to generate combinations from.
|
| n | integer |
The size of each combination.
|
| a | array | |
| b | integer |
| number-theory.composite-nth(n) | → | integer |
| n | integer |
The index of the composite number to retrieve.
|
| number-theory.composite-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.composite-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.composite?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.coprime?(a, b) | → | boolean |
| number-theory.count-combinations(a, b) | → | integer |
| number-theory.count-derangements(n) | → | integer |
| n | integer |
The total number of items.
|
| number-theory.count-distinct-prime-factors(n) | → | integer |
| n | integer |
The number to count distinct prime factors for.
|
| number-theory.count-divisors(n) | → | integer |
| n | integer |
The number to count divisors for.
|
| number-theory.count-partitions(n) | → | integer |
| n | integer |
The number to count partitions for.
|
| number-theory.count-permutations(a, b) | → | integer |
| number-theory.count-power-set(n) | → | integer |
| n | integer |
The size of the set.
|
| number-theory.count-prime-factors(n) | → | integer |
| n | integer |
The number to count prime factors for.
|
| number-theory.count-proper-divisors(n) | → | integer |
| n | integer |
The number to count proper divisors for.
|
| number-theory.deficient-nth(n) | → | integer |
| n | integer |
The index of the number in the sequence.
|
| number-theory.deficient-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.deficient-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.deficient?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.derangements(set) | → | Array<array> |
| set | Array<array> |
The input collection to generate derangements from.
|
| number-theory.distinct-prime-factors(n) | → | Array<integer> |
| n | integer |
The number to find distinct prime factors for.
|
| number-theory.divisible-by?(a, b) | → | boolean |
| number-theory.divisors(n) | → | Array<integer> |
| n | integer |
The number to find divisors for.
|
| number-theory.euler-totient(n) | → | integer |
| n | integer |
The number to calculate the totient for.
|
| number-theory.extended-gcd(a, b) | → | Array<integer> |
| number-theory.factorial(n) | → | integer |
| n | integer |
The number to calculate the factorial for.
|
| number-theory.factorial-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 19 (the maximum length of the pre-calculated factorial numbers).
|
| number-theory.factorial-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.factorial?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.fibonacci-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 79 (the maximum length of the pre-calculated Fibonacci numbers).
|
| number-theory.fibonacci-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.fibonacci?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.gcd(a, b) | → | integer |
| number-theory.geometric-nth(start, ratio, n) | → | integer |
| start | number |
The starting term of the sequence.
|
| ratio | number |
The common ratio of the sequence.
|
| n | integer |
The index of the term to generate.
|
| number-theory.geometric-seq(start, ratio, length) | → | Array<integer> |
| start | number |
The starting term of the sequence.
|
| ratio | number |
The common ratio of the sequence.
|
| length | integer |
The length of the sequence to generate.
|
| number-theory.geometric-take-while(start, ratio, takeWhile) | → | Array<integer> |
| start | number |
The starting term of the sequence.
|
| ratio | number |
The common ratio of the sequence.
|
| takeWhile | function |
A function that takes a number and an index and returns a boolean.
|
| number-theory.geometric?(start, ratio, n) | → | boolean |
| start | number |
The starting term of the sequence.
|
| ratio | number |
The common ratio of the sequence.
|
| n | number |
The number to check.
|
| number-theory.golomb-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.golomb-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.golomb-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.golomb?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.happy-nth(n) | → | integer |
| n | integer |
The index of the happy number to return.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 20 (the maximum length of the pre-calculated happy numbers).
|
| number-theory.happy-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.happy?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.juggler-seq(start) | → | Array<integer> |
| start | integer |
The starting integer for the Juggler sequence.
|
| number-theory.lcm(a, b) | → | integer |
| number-theory.look-and-say-nth(n) | → | string |
| n | integer |
The index of the term in the sequence.
|
| number-theory.look-and-say-seq(length) | → | Array<string> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.look-and-say-take-while(takeWhile) | → | Array<string> |
| takeWhile | function |
A function that takes a string and an index and returns a boolean.
|
| number-theory.look-and-say?(term) | → | boolean |
| term | string |
The term to check.
|
| number-theory.lucas-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 77 (the maximum length of the pre-calculated Lucas numbers).
|
| number-theory.lucas-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.lucas?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.lucky-nth(n) | → | integer |
| n | integer |
The position in the sequence.
|
| number-theory.lucky-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.lucky-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.lucky?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.mersenne-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 9 (the maximum length of the pre-calculated mersenne numbers).
|
| number-theory.mersenne-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.mersenne?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.mertens(n) | → | integer |
| n | integer |
The number to calculate the Mertens function for.
|
| number-theory.mobius(n) | → | integer |
| n | integer |
The number to calculate the Möbius function for.
|
| number-theory.mod-exp(base, exponent, modulus) | → | integer |
| number-theory.mod-inv(a, ) | → | integer |
| number-theory.multinomial(...args) | → | integer |
| args | Array<integer> |
The numbers representing the sizes of each group.
|
| number-theory.padovan-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.padovan-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.padovan-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.padovan?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.partition-nth(n) | → | integer |
| n | integer |
The index of the partition number to generate.
|
| length | integer |
The length of the sequence to generate.
|
| number-theory.partition-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.partition?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.partitions(n) | → | Array<array> |
| n | integer |
The number to partition.
|
| number-theory.pell-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 42 (the maximum length of the pre-calculated Pell numbers).
|
| number-theory.pell-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.pell?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.perfect-cube-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.perfect-cube-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.perfect-cube-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.perfect-cube?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.perfect-nth(n) | → | integer |
| n | integer |
The index of the perfect number to generate.
|
| number-theory.perfect-power(n) | → | Array<array> |
| n | integer |
The number to check.
|
| number-theory.perfect-power-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.perfect-power-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.perfect-power-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.perfect-power?(n) | → | boolean |
| n | integer |
The number to check.
|
| length | integer |
The length of the sequence to generate. If no length is provided, it defaults to 7 (the maximum length of the pre-calculated perfect numbers).
|
| number-theory.perfect-square-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.perfect-square-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.perfect-square-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.perfect-square?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.perfect-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.perfect?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.permutations(set) | → | Array<array> |
| set | Array<array> |
The input collection to generate permutations from.
|
| number-theory.polygonal-nth(sides, n) | → | integer |
| sides | integer |
The number of sides of the polygon.
|
| n | integer |
The index of the term to generate.
|
| a | integer | |
| b | integer |
| number-theory.polygonal-seq(sides, length) | → | Array<integer> |
| sides | integer |
The number of sides of the polygon.
|
| length | integer |
The length of the sequence to generate.
|
| a | integer | |
| b | integer |
| number-theory.polygonal-take-while(sides, takeWhile) | → | Array<integer> |
| sides | integer |
The number of sides of the polygon.
|
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| a | integer | |
| b | function |
| number-theory.polygonal?(sides, n) | → | boolean |
| sides | integer |
The number of sides of the polygon.
|
| n | integer |
The number to check.
|
| a | integer | |
| b | integer |
| number-theory.power-set(set) | → | Array<array> |
| set | Array<any> |
The input collection to generate the power set from.
|
| number-theory.prime-factors(n) | → | Array<integer> |
| n | integer |
The number to factor.
|
| number-theory.prime-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.prime-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.prime-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.prime?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.proper-divisors(n) | → | Array<integer> |
| n | integer |
The number to find proper divisors for.
|
| number-theory.recaman-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.recaman-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.recaman-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.recaman?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.sigma(n) | → | integer |
| n | integer |
The number to calculate the sum of divisors for.
|
| number-theory.stirling-first(a, b) | → | integer |
| number-theory.stirling-second(a, b) | → | integer |
| number-theory.sylvester-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| length | integer |
The length of the sequence to generate. If not provided, the default is 6 (the maximum length of the pre-calculated Sylvester numbers).
|
| number-theory.sylvester-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.sylvester?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.thue-morse-nth(n) | → | integer |
| n | integer |
The index of the term in the sequence.
|
| number-theory.thue-morse-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.thue-morse-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.thue-morse?(n) | → | boolean |
| n | integer |
The number to check.
|
| number-theory.tribonacci-nth(n) | → | integer |
| n | integer |
The index of the term to generate.
|
| number-theory.tribonacci-seq(length) | → | Array<integer> |
| length | integer |
The length of the sequence to generate.
|
| number-theory.tribonacci-take-while(takeWhile) | → | Array<integer> |
| takeWhile | function |
A function that takes an integer and an index and returns a boolean.
|
| number-theory.tribonacci?(n) | → | boolean |
| n | integer |
The number to check.
|
| entries(obj) | → | array |
| obj | object |
| keys(obj) | → | Array<any> |
| obj | object |
If two keys appears in more than one object the value from the last object is used. If no arguments are provided null is returned.
| merge-with(...objs, fun) | → | object |
If no arguments are provided null is returned.
| vals(obj) | → | Array<any> |
| obj | object |
| array?(x) | → | boolean |
| x | any |
| boolean?(x) | → | boolean |
| x | any |
| collection?(x) | → | boolean |
| x | any |
| empty?(x) | → | boolean |
| x | collection | string | null |
| even?(x) | → | boolean |
| x | number |
| false?(x) | → | boolean |
| x | any |
| finite?(x) | → | boolean |
| x | number |
| function?(x) | → | boolean |
| x | any |
| grid?(value) | → | boolean |
| value | any |
The value to check.
|
| integer?(x) | → | boolean |
| x | any |
| matrix?(value) | → | boolean |
| value | any |
The value to check.
|
| neg?(x) | → | boolean |
| x | number |
| negative-infinity?(x) | → | boolean |
| x | number |
| not-empty?(x) | → | boolean |
| x | collection | string | null |
| null?(x) | → | boolean |
| x | any |
| number?(x) | → | boolean |
| x | any |
| object?(x) | → | boolean |
| x | any |
| odd?(x) | → | boolean |
| x | number |
| pos?(x) | → | boolean |
| x | number |
| positive-infinity?(x) | → | boolean |
| x | number |
| regexp?(x) | → | boolean |
| x | any |
| sequence?(x) | → | boolean |
| x | any |
| string?(x) | → | boolean |
| x | any |
| true?(x) | → | boolean |
| x | any |
| vector?(value) | → | boolean |
| value | any |
The value to check.
|
| zero?(x) | → | boolean |
| x | number |
| random.random-binomial!(n, p) | → | integer |
| random.random-boolean!(prob) | → | boolean |
| prob | number |
The probability of returning true (between 0 and 1).
|
| random.random-char!(charSet) | → | string |
| charSet | string |
The string to sample from.
|
| random.random-color!() | → | string |
| random.random-exponential!(lambda) | → | number |
| lambda | number |
The rate parameter of the exponential distribution.
|
| random.random-float!(a, b) | → | number |
| random.random-gamma!(shape, scale) | → | number |
| shape | number |
The shape parameter of the gamma distribution.
|
| scale | number |
The scale parameter of the gamma distribution.
|
| random.random-id!(length) | → | string |
| length | integer |
The length of the random ID.
|
| random.random-int-inclusive!(a, b) | → | integer |
| random.random-int!(a, b) | → | integer |
| random.random-item!(a) | → | any |
| a | array |
The array to sample from.
|
| random.random-normal!(mean, stdDev) | → | number |
| mean | number |
The mean of the normal distribution.
|
| stdDev | number |
The standard deviation of the normal distribution.
|
| random.random-pareto!(alpha) | → | number |
| alpha | number |
The shape parameter of the Pareto distribution.
|
| random.random-poisson!(lambda) | → | integer |
| lambda | number |
The rate parameter of the Poisson distribution.
|
| random.random-sample-unique!(a, b) | → | array |
| random.random-sample!(a, b) | → | array |
| random.random-string!(length, charSet) | → | string |
| random.random!() | → | number |
| random.shuffle!(a) | → | array |
| a | array |
The array to shuffle.
|
| random.uuid!() | → | string |
| pattern | string | |
| flags | string |
Optional flags for the regular expression. Possible values are the same as Javascript RegExp takes.
|
| replace(a, b, x) | → | Array<any> |
| replace-all(a, b, x) | → | Array<any> |
| first(seq) | → | any |
| last(seq) | → | any |
| seq | sequence |
| seq | sequence |
| seq | sequence |
| second(seq) | → | any |
| sequence.distinct(seq) | → | sequence |
| seq | sequence |
| sequence.ends-with?(seq, suffix) | → | boolean |
| sequence.frequencies(seq) | → | object |
| seq | sequence |
| sequence.group-by(seq, fun) | → | object |
| sequence.interleave(...seqs) | → | sequence |
| sequence.interpose(seq, separator) | → | sequence |
| sequence.partition(seq, n) | → | sequence |
| sequence.partition(seq, n, step) | → | sequence |
| sequence.partition(seq, n, step, pad) | → | sequence |
| sequence.partition-by(seq, fun) | → | sequence |
| sequence.remove(seq, fun) | → | sequence |
| sequence.remove-at(seq, n) | → | sequence |
| sequence.splice(...seq, start, deleteCount) | → | sequence |
| sequence.splice(...seq, start, deleteCount, ...items) | → | sequence |
| sequence.split-at(seq, n) | → | sequence |
| sequence.split-with(seq, fun) | → | sequence |
| sequence.starts-with?(seq, prefix) | → | boolean |
| sequence.unshift(seq, ...values) | → | sequence |
| a slice b | → | sequence |
| slice(...seq) | → | sequence |
| slice(...seq, start) | → | sequence |
| slice(...seq, start, stop) | → | sequence |
| a | sequence | |
| b | integer | |
| seq | Array<sequence> | |
| start | integer |
Defaults to 0.
|
| stop | integer |
Defaults lenght of sequence + 1.
|
You can reference the first argument using either $1 or $. However, please note that $1 and $ are mutually exclusive and cannot be used simultaneously. E.g. -> $ * $1 is not valid.
| blank?(s) | → | boolean |
| lower-case(s) | → | string |
| s | string |
| number(s) | → | number |
| s | string |
| str(...values) | → | string |
| values | Array<any> |
| string.capitalize(s) | → | string |
| s | string |
| string.decode-base64(base64string) | → | string |
| base64string | string |
| string.decode-uri-component(s) | → | string |
| s | string |
| string.encode-base64(s) | → | string |
| s | string |
| string.encode-uri-component(s) | → | string |
| s | string |
| string.from-char-code(code) | → | string |
| code | number |
| string.split-lines(s) | → | string |
| s | string |
| string.string-repeat(s, n) | → | number |
| string.template(s, ...params) | → | string |
| string.to-char-code(c) | → | number |
| c | string |
| string.trim-left(s) | → | string |
| s | string |
| string.trim-right(s) | → | string |
| s | string |
| trim(s) | → | string |
| s | string |
| upper-case(s) | → | string |
| s | string |
| mean(vector) | → | number |
| vector | vector |
The vector to calculate the mean of.
|
| median(vector) | → | number |
| vector | vector |
The vector to calculate the median of.
|
| prod(vector) | → | number |
| vector | vector |
The vector to multiply.
|
| sum(vector) | → | number |
| vector | vector |
The vector to sum.
|
| vector.bincount(vector) | → | vector |
| vector.bincount(vector, minSize) | → | vector |
| vector.bincount(vector, minSize, weights) | → | vector |
| vector | vector |
The vector to count occurrences in.
|
| minSize | integer |
Optional minimum size of the output array.
|
| weights | Array<number> |
Optional weights for each element in the vector.
|
| vector.centered-moving-entropy(vector, windowSize) | → | vector |
| vector.centered-moving-entropy(vector, windowSize, leftPadding) | → | vector |
| vector.centered-moving-entropy(vector, windowSize, leftPadding, rightPadding) | → | vector |
| vector | vector |
The vector to calculate the centered moving entropy of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-excess-kurtosis(vector, windowSize) | → | array |
| vector.centered-moving-excess-kurtosis(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-excess-kurtosis(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving excess kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-geometric-mean(vector, windowSize) | → | array |
| vector.centered-moving-geometric-mean(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-geometric-mean(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving geometric mean of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-gini-coefficient(vector, windowSize) | → | array |
| vector.centered-moving-gini-coefficient(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-gini-coefficient(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving gini coefficient of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-harmonic-mean(vector, windowSize) | → | array |
| vector.centered-moving-harmonic-mean(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-harmonic-mean(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving harmonic mean of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-iqr(vector, windowSize) | → | array |
| vector.centered-moving-iqr(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-iqr(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving interquartile range of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-kurtosis(vector, windowSize) | → | array |
| vector.centered-moving-kurtosis(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-kurtosis(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-mad(vector, windowSize) | → | array |
| vector.centered-moving-mad(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-mad(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving mean absolute deviation of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-mean(vector, windowSize) | → | array |
| vector.centered-moving-mean(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-mean(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving mean of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-medad(vector, windowSize) | → | array |
| vector.centered-moving-medad(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-medad(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving median absolute deviation of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-median(vector, windowSize) | → | array |
| vector.centered-moving-median(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-median(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving median of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-prod(vector, windowSize) | → | array |
| vector.centered-moving-prod(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-prod(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving product of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-rms(vector, windowSize) | → | vector |
| vector.centered-moving-rms(vector, windowSize, leftPadding) | → | vector |
| vector.centered-moving-rms(vector, windowSize, leftPadding, rightPadding) | → | vector |
| vector | vector |
The vector to calculate the centered moving root mean square of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-sample-excess-kurtosis(vector, windowSize) | → | array |
| vector.centered-moving-sample-excess-kurtosis(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-sample-excess-kurtosis(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving sample excess kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-sample-kurtosis(vector, windowSize) | → | array |
| vector.centered-moving-sample-kurtosis(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-sample-kurtosis(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving sample kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-sample-skewness(vector, windowSize) | → | array |
| vector.centered-moving-sample-skewness(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-sample-skewness(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving sample skewness of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-sample-stdev(vector, windowSize) | → | array |
| vector.centered-moving-sample-stdev(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-sample-stdev(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving sample standard deviation of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-sample-variance(vector, windowSize) | → | array |
| vector.centered-moving-sample-variance(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-sample-variance(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving sample variance of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-skewness(vector, windowSize) | → | array |
| vector.centered-moving-skewness(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-skewness(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving skewness of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-span(vector, windowSize) | → | array |
| vector.centered-moving-span(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-span(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving span of.
|
| windowSize | integer |
The size of the moving window.
|
| leftPadding | number |
The value to pad the result with on the left.
|
| rightPadding | number |
The value to pad the result with on the right.
|
| a | vector | |
| b | integer |
| vector.centered-moving-stdev(vector, windowSize) | → | array |
| vector.centered-moving-stdev(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-stdev(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving standard deviation of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-sum(vector, windowSize) | → | array |
| vector.centered-moving-sum(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-sum(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving sum of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.centered-moving-variance(vector, windowSize) | → | array |
| vector.centered-moving-variance(vector, windowSize, leftPadding) | → | array |
| vector.centered-moving-variance(vector, windowSize, leftPadding, rightPadding) | → | array |
| vector | vector |
The vector to calculate the centered moving variance of.
|
| windowSize | integer |
The size of the centered moving window.
|
| leftPadding | number |
Optional value to use for padding. Default is null.
|
| rightPadding | number |
Optional value to use for right padding. Default is null.
|
| a | vector | |
| b | integer |
| vector.count-values(vector) | → | Array<number> |
| vector | vector |
Vector to count the values of.
|
| vector.cumprod(vector) | → | Array<number> |
| vector | vector |
The vector to calculate the cumulative product of.
|
| vector.cumsum(vector) | → | Array<number> |
| vector | vector |
The vector to calculate the cumulative sum of.
|
| vector.decreasing?(vector) | → | boolean |
| vector | vector |
The vector to check.
|
| vector.ecdf(vector, threshold) | → | number |
| vector | vector |
The numeric array to calculate the ECDF from.
|
| threshold | number |
The threshold value to calculate the ECDF for.
|
| a | number | |
| b | integer |
| vector.entropy(vector) | → | number |
| vector | vector |
The vector to calculate the entropy of. Minimum length is 1.
|
| vector.excess-kurtosis(vector) | → | number |
| vector | vector |
The vector to calculate the excess kurtosis of. Minimum length is 3.
|
| vector.geometric-mean(vector) | → | number |
| vector | vector |
The vector to calculate the geometric mean of.
|
| vector.gini-coefficient(vector) | → | number |
| vector | vector |
The vector to calculate the gini coefficient of.
|
| vector.harmonic-mean(vector) | → | number |
| vector | vector |
The vector to calculate the harmonic mean of.
|
| vector.histogram(vector, bins) | → | Array<array> |
| vector | vector |
The numeric array to create a histogram from.
|
| bins | integer |
The number of bins to divide the data range into.
|
| a | number | |
| b | integer |
| vector.increasing?(vector) | → | boolean |
| vector | vector |
The vector to check.
|
| vector.iqr(vector) | → | number |
| vector | vector |
The vector to calculate the interquartile range of. Minimum length is 4.
|
| vector.kurtosis(vector) | → | number |
| vector | vector |
The vector to calculate the kurtosis of. Minimum length is 3.
|
| vector.linspace(start, stop, n) | → | Array<number> |
| start | number |
The starting value.
|
| stop | number |
The ending value.
|
| n | integer |
The number of values to generate.
|
| vector.mad(vector) | → | number |
| vector | vector |
The vector to calculate the mean absolute deviation of.
|
| vector.mae(a, b) | → | number |
| vector.max-index(vector) | → | integer |
| vector | vector |
Non emtpy vector to calculate the maximum index of.
|
| vector.medad(vector) | → | number |
| vector | vector |
The vector to calculate the median absolute deviation of.
|
| vector.min-index(vector) | → | integer |
| vector | vector |
Non emtpy vector to calculate the minimum index of.
|
| vector.mode(vector) | → | number |
| vector | vector |
The vector to calculate the mode of.
|
| vector.monotonic?(vector) | → | boolean |
| vector | vector |
The vector to check.
|
| vector.moving-entropy(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving entropy of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-excess-kurtosis(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving excess kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-geometric-mean(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving geometric mean of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-gini-coefficient(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving gini coefficient of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-harmonic-mean(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving harmonic mean of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-iqr(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving interquartile range of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-kurtosis(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-mad(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving mean absolute deviation of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-mean(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving mean of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-medad(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving median absolute deviation of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-median(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving median of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-prod(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving product of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-rms(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving root mean square of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-sample-excess-kurtosis(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving sample excess kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-sample-kurtosis(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving sample kurtosis of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-sample-skewness(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving sample skewness of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-sample-stdev(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving sample standard deviation of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-sample-variance(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving sample variance of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-skewness(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving skewness of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-span(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving span of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-stdev(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving standard deviation of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-sum(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving sum of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.moving-variance(vector, windowSize) | → | vector |
| vector | vector |
The vector to calculate the moving variance of.
|
| windowSize | integer |
The size of the moving window.
|
| a | vector | |
| b | integer |
| vector.mse(a, b) | → | number |
| vector.outliers(vector) | → | Array<number> |
| vector | vector |
The vector to check for outliers.
|
| vector.outliers?(vector) | → | boolean |
| vector | vector |
The vector to check for outliers.
|
| vector.percentile(vector, percentile) | → | number |
| vector | vector |
The non empty vector to calculate the percentile of.
|
| percentile | number |
The percentile to calculate. Must be between 0 and 1.
|
| a | number | |
| b | integer |
| vector.quantile(vector, quantile) | → | number |
| vector | vector |
The non empty vector to calculate the quantile of.
|
| quantile | number |
The quantile to calculate. Must be between 0 and 1.
|
| a | number | |
| b | integer |
| vector.quartiles(vector) | → | Array<number> |
| vector | vector |
The vector to calculate the quartiles of. Minimum length is 4.
|
| vector.rms(vector) | → | number |
| vector | vector |
The vector to calculate the root mean square of. Minimum length is 1.
|
| vector.rmse(a, b) | → | number |
| vector.running-entropy(vector) | → | vector |
| vector | vector |
The vector to calculate the running entropy of.
|
| vector.running-excess-kurtosis(vector) | → | array |
| vector | vector |
The vector to calculate the running excess kurtosis of.
|
| vector.running-geometric-mean(vector) | → | vector |
| vector | vector |
The vector to calculate the running geometric mean of.
|
| vector.running-gini-coefficient(vector) | → | array |
| vector | vector |
The vector to calculate the running gini coefficient of.
|
| vector.running-harmonic-mean(vector) | → | vector |
| vector | vector |
The vector to calculate the running harmonic mean of.
|
| vector.running-iqr(vector) | → | vector |
| vector | vector |
The vector to calculate the running interquartile range of.
|
| vector.running-kurtosis(vector) | → | array |
| vector | vector |
The vector to calculate the running kurtosis of.
|
| vector.running-mad(vector) | → | vector |
| vector | vector |
The vector to calculate the running mean absolute deviation of.
|
| vector.running-mean(vector) | → | vector |
| vector | vector |
The vector to calculate the running mean of.
|
| vector.running-medad(vector) | → | vector |
| vector | vector |
The vector to calculate the running median absolute deviation of.
|
| vector.running-median(vector) | → | vector |
| vector | vector |
The vector to calculate the running median of.
|
| vector.running-prod(vector) | → | vector |
| vector | vector |
The vector to calculate the running product of.
|
| vector.running-rms(vector) | → | vector |
| vector | vector |
The vector to calculate the running root mean square of.
|
| vector.running-sample-excess-kurtosis(vector) | → | array |
| vector | vector |
The vector to calculate the running sample excess kurtosis of.
|
| vector.running-sample-kurtosis(vector) | → | array |
| vector | vector |
The vector to calculate the running sample kurtosis of.
|
| vector.running-sample-skewness(vector) | → | array |
| vector | vector |
The vector to calculate the running sample skewness of.
|
| vector.running-sample-stdev(vector) | → | array |
| vector | vector |
The vector to calculate the running sample standard deviation of. First element in result is null since sample standard deviation is not defined for a single element.
|
| vector.running-sample-variance(vector) | → | array |
| vector | vector |
The vector to calculate the running sample variance of. First element in result is null since sample variance is not defined for a single element.
|
| vector.running-skewness(vector) | → | array |
| vector | vector |
The vector to calculate the running skewness of.
|
| vector.running-span(vector) | → | vector |
| vector | vector |
The vector to calculate the running span of.
|
| vector.running-stdev(vector) | → | vector |
| vector | vector |
The vector to calculate the running standard deviation of.
|
| vector.running-sum(vector) | → | vector |
| vector | vector |
The vector to calculate the running sum of.
|
| vector.running-variance(vector) | → | vector |
| vector | vector |
The vector to calculate the running variance of.
|
| vector.sample-excess-kurtosis(vector) | → | number |
| vector | vector |
The vector to calculate the sample excess kurtosis of. Minimum length is 3.
|
| vector.sample-kurtosis(vector) | → | number |
| vector | vector |
The vector to calculate the sample kurtosis of. Minimum length is 3.
|
| vector.sample-skewness(vector) | → | number |
| vector | vector |
The vector to calculate the sample skewness of. Minimum length is 3.
|
| vector.sample-stdev(vector) | → | number |
| vector | vector |
Non emtpy vector to calculate the sample standard deviation of.
|
| vector.sample-variance(vector) | → | number |
| vector | vector |
Non emtpy vector to calculate the sample variance of.
|
| vector.skewness(vector) | → | number |
| vector | vector |
The vector to calculate the skewness of. Minimum length is 3.
|
| vector.smape(a, b) | → | number |
| vector.sort-indices(vector) | → | vector |
| vector | vector |
Non emtpy vector to calculate the sorted indices of.
|
| vector.span(vector) | → | number |
| vector | vector |
The vector to calculate the span of.
|
| vector.stdev(vector) | → | number |
| vector | vector |
Non emtpy vector to calculate the standard deviation of.
|
| vector.strictly-decreasing?(vector) | → | boolean |
| vector | vector |
The vector to check.
|
| vector.strictly-increasing?(vector) | → | boolean |
| vector | vector |
The vector to check.
|
| vector.strictly-monotonic?(vector) | → | boolean |
| vector | vector |
The vector to check.
|
| vector.variance(vector) | → | number |
| vector | vector |
The vector to calculate the variance of.
|
| vector.winsorize(vector, lower-quantile) | → | vector |
| vector.winsorize(vector, lower-quantile, upper-quantile) | → | vector |
| vector | vector |
The vector to winsorize.
|
| lower-quantile | number |
The lower quantile threshold (between 0 and 1).
|
| upper-quantile | number |
Optional Upper quantile threshold (between 0 and 1). Defaults to (1 - lower-quantile) if lower-quantile <= 0.5 otherwise 1.
|