Members
(static, constant) emptyList
The empty list, or [] in Haskell (represented as [[]] in this library).
Haskell> [] :: [t]
- Source:
Methods
(static) cons(x, xs) → {List}
Create a new List
from a head and tail. As in Haskell, cons
is based on the classic Lisp
function of the same name.
Haskell> (:) :: a -> [a] -> [a]
Parameters:
Name | Type | Description |
---|---|---|
x |
* | Any value, the head of the new list |
xs |
List | A |
- Source:
Returns:
The new List
, constructed from x
and xs
- Type
- List
Example
const lst = list(4,5,6);
cons(3)(lst); // => [3:4:5:6:[]]
(static) empty(t) → {boolean}
Test whether a Foldable
structure (such as a List
) is empty.
Haskell> null :: t a -> Bool
Parameters:
Name | Type | Description |
---|---|---|
t |
Object | The |
- Source:
Returns:
true
if the structure is empty, false
otherwise
- Type
- boolean
Example
empty(list(1,2,3)); // => false
empty(emptyList); // => true
(static) fromArrayToList(arr) → {List}
Convert an array into a List
.
Parameters:
Name | Type | Description |
---|---|---|
arr |
Array.<*> | An array to convert into a |
- Source:
Returns:
A new List
, the converted array
- Type
- List
Example
const arr = [1,2,3];
fromArrayToList(arr); // => [1:2:3:[]]
(static) fromListToArray(xs) → {Array}
Convert a List
into an array.
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
A new array, the converted List
- Type
- Array
Example
const lst = list(1,2,3);
fromListToArray(lst); // => [1,2,3]
(static) fromListToString(xs) → {string}
Convert a List
into a string.
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
A new string, the converted List
- Type
- string
Example
const str = list('a','b','c');
fromListToString(str); // => "abc"
(static) fromStringToList(str) → {List}
Convert a string into a List
.
Parameters:
Name | Type | Description |
---|---|---|
str |
string | A string to convert into a |
- Source:
Returns:
A new List
, the converted string
- Type
- List
Example
const str = `abc`;
fromStringToList(str); // => [abc]
(static) head(xs) → {*}
Extract the first element of a List
.
Haskell> head :: [a] -> a
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
The head of the List
- Type
- *
Example
const lst = list(1,2,3);
head(lst); // => 1
(static) init(xs) → {List}
Return all the elements of a List
except the last one.
Haskell> tail :: [a] -> [a]
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
A new List
, without the original list's last element
- Type
- List
Example
const lst = list(1,2,3);
init(lst); // => [1:2:[]]
(static) isEmpty(xs) → {boolean}
Check whether a List
is empty. Returns true
if the List
is empty or false if it is
non-empty. Throws a type error, otherwise.
Parameters:
Name | Type | Description |
---|---|---|
xs |
* | A |
- Source:
Returns:
true
if the List
is empty, false
if it is non-empty
- Type
- boolean
Example
isEmpty([]); // => true
isEmpty([[]]); // => false
isEmpty(emptyList); // => true
isEmpty(list(emptyList)); // => false
(static) isList(a) → {boolean}
Determine whether a given object is a List
.
Parameters:
Name | Type | Description |
---|---|---|
a |
* | Any object |
- Source:
Returns:
true
if the object is a List
and false
otherwise
- Type
- boolean
(static) last(xs) → {*}
Extract the last element of a List
.
Haskell> last :: [a] -> a
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
The last element of the List
- Type
- *
Example
const lst = list(1,2,3);
last(lst); // => 3
(static) length(xs) → {number}
Return the length of a List
. In the future, this function should work on all Foldable
structures.
Haskell> length :: Foldable t => t a -> Int
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
The length of the List
- Type
- number
Example
const lst = list(1,2,3);
length(lst); // => 3
(static) list(…as) → {List}
Create a new List
from a series of zero or more values.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
as |
* |
<repeatable> |
Values to put into a new |
- Source:
Returns:
The new List
- Type
- List
Example
list(1,2,3); // => [1:2:3:[]]
(static) listAppend(xs, ys) → {List}
Append one List
to another.
Haskell> (++) :: [a] -> [a] -> [a]
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
ys |
List | A |
- Source:
Returns:
A new List
, the result of appending xs
to ys
- Type
- List
Example
const lst1 = list(1,2,3);
const lst2 = list(4,5,6);
listAppend(lst1, lst2); // => [1:2:3:4:5:6:[]]
(static) listFilter(start, end, filtopt) → {List}
Build a List
from a range of enumerated values, and apply a filter to each one. This function
is a shortcut for listRange
that simply applies a filter with the default function x = x + 1
.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
start |
* | The beginning of the range (inclusive) |
|
end |
* | The end of the range (exclusive) |
|
filt |
function |
<optional> |
An optional filter (returning |
- Source:
Returns:
A new List
of filtered values
- Type
- List
Example
const f = x => x + 5;
const evens = x => even(x);
listFilter(1, 30, evens); // => [2:4:6:8:10:12:14:16:18:20:22:24:26:28:[]]
(static) listRange(start, end, fopt, filtopt) → {List}
Build a List
from a range of values. Currently, this only works with numbers. The equivalent is
achieved in Haskell using list comprehensions.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
start |
* | The beginning of the range (inclusive) |
||
end |
* | The end of the range (exclusive) |
||
f |
function |
<optional> |
(x => x + 1) | The function to apply iteratively to each value |
filt |
function |
<optional> |
An optional filter (returning |
- Source:
Returns:
The new List
- Type
- List
Example
const f = x => x + 5;
const evens = x => even(x);
listRange(0, 100, f); // => [0:5:10:15:20:25:30:35:40:45:50:55:60:65:70:75:80:85:90:95:[]]
listRange(0, 100, f, evens); // => [0:10:20:30:40:50:60:70:80:90:[]]
(static) listRangeLazy(start, end) → {List}
Build a List
from a range of values using lazy evaluation (i.e. each successive value is only
computed on demand, making infinite lists feasible). To supply your own function for determining
the increment, use listRangeLazyBy
.
Parameters:
Name | Type | Description |
---|---|---|
start |
* | The starting value |
end |
* | The end value |
- Source:
Returns:
A List
that will be evaluated lazily
- Type
- List
(static) listRangeLazyBy(start, end, step) → {List}
Build a List
from a range of values using lazy evaluation and incrementing it using a given
step function.
Parameters:
Name | Type | Description |
---|---|---|
start |
* | The starting value |
end |
* | The end value |
step |
function | The increment function |
- Source:
Returns:
A List
that will be evaluated lazily
- Type
- List
(static) tail(xs) → {List}
Extract the elements after the head of a List
.
Haskell> tail :: [a] -> [a]
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | A |
- Source:
Returns:
The tail of the List
- Type
- List
Example
const lst = list(1,2,3);
tail(lst); // => [2:3:[]]
(static) uncons(xs) → {Maybe}
Decompose a List
into its head and tail. If the list is empty, returns Nothing
. If the list
is non-empty, returns Just (x, xs)
, where x
is the head of the List
and xs
its tail.
Haskell> uncons :: [a] -> Maybe (a, [a])
Parameters:
Name | Type | Description |
---|---|---|
xs |
List | The |
- Source:
Returns:
The decomposed List
wrapped in a Just
, or Nothing
if the list is empty
- Type
- Maybe
Example
const lst = list(1,2,3);
uncons(lst); // => Just (1,[2:3:[]])