持久性
TypeScript 的持续数据结构.
持久性数据结构是完全不可改变的,但能有效地在 彼此间. 举例来说, 预先花费到一个偏执列表中, 只创建一个新的节点 引用旧列表。 然而,在数组之前,需要复制整个数组. 因此,持久性数据结构更适合在不可改变的环境中使用.
这个图书馆不像其他人一样发达 比如说 不可移动 js。 。 。 . 但是,它可以提供替代数据结构,希望能够提供更可读的执行. 与 不可移动 js 具体地说,这种执行也是先打字的,而 该库在事实后添加了类型说明. 这样就形成了一个围绕的活象 普通的, 也不一定 与JS的平庸.
已执行的数据结构
这个库目前只执行少数数据结构.
列表
List 是一个单独链接的列表。 以下是其业务样本:
// ()
List.empty<number>();
// (1, 2, 3, 4)
List.of(1, 2, 3, 4);
// (1, 2)
List.of(1).prepend(2);
// 1
List.of(1, 2, 3).head();
// (2, 3)
List.of(1, 2, 3).tail();
// (1, 2, 3)
List.of(1, 2, 3, 4).take(3);
// (4)
List.of(1, 2, 3, 4).drop(3);
//[1, 2, 3, 4]
[...List.of(1, 2, 3, 4)];
向量
Vector 是一棵Radix树 在cljure的数据结构中.
这可用作具有高效随机存取和
随附. 以下是其业务样本:
// []
Vector.empty<number>();
// [1]
Vector.empty().append(1);
// []
Vector.from([1]).pop();
// 3
Vector.from([1, 2, 3]).get(2);
// [1, 2, 100]
Vector.from([1, 2, 3]).set(2, 100);