3.2.146 • Published 5 months ago

@thi.ng/dcons v3.2.146

Weekly downloads
3,158
License
Apache-2.0
Repository
github
Last release
5 months ago

dcons

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

Double-linked lists with comprehensive set of operations (incl. optional self-organizing behaviors).

  • ES6 iterator support
  • Stack & queue API (front and/or back)
  • Random node access (read / write, O(n/2))
  • Node insertion (also w/ custom comparator)
  • Node finding (O(n))
  • Node swaps (O(1))
  • Reversing (O(n/2))
  • Rotation (left / right) (O(1))
  • Shuffling (configurable, support custom PRNG)
  • Sorting (Merge sort, w/ custom comparator)
  • Slicing (sublist copies)
  • Splicing (delete and/or insert)
  • release() (emptying, GC friendly)
  • concat() / into()
  • map() / filter() / reduce()
  • compare() / equiv()
  • toJSON() transform (-> array)

v2.3.0 adds the self-organizing list type SOL (an extension of DCons), which dynamically re-orders items based on certain accesses and offers these two built-in strategies:

  • defMTF() - moves currently accessed element to front of list
  • defTranspose() - swaps currently accessed element with its predecessor

Only the following operations will trigger the self-organizing behavior:

  • nth()
  • setNth()
  • setTail()
  • find()
  • findWith()

Btw. Also see @thi.ng/cache for more LRU, MRU implementations based on managed DCons impls...

Status

STABLE - used in production

Search or submit any issues for this package

Installation

yarn add @thi.ng/dcons

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/dcons"></script>

Skypack documentation

For Node.js REPL:

# with flag only for < v16
node --experimental-repl-await

> const dcons = await import("@thi.ng/dcons");

Package sizes (gzipped, pre-treeshake): ESM: 2.14 KB

Dependencies

API

Generated API docs

Head centric

  • cons()
  • first()
  • drop()
  • setHead()

Tail centric

  • into()
  • push()
  • peek()
  • pop()
  • setTail()

Random Access

  • .length
  • nth()
  • nthCell()
  • setNth()

Insertion

  • insertBefore()
  • insertAfter()
  • insertBeforeNth()
  • insertAfterNth()
  • insertSorted()

Finding

  • find()
  • findWith()

Structure

  • copy()
  • concat()
  • slice()
  • splice()
  • swap()
  • shuffle()
  • sort()
  • reverse()
  • rotateLeft()
  • rotateRight()
  • release()

TODO

Authors

Karsten Schmidt

If this project contributes to an academic publication, please cite it as:

@misc{thing-dcons,
  title = "@thi.ng/dcons",
  author = "Karsten Schmidt",
  note = "https://thi.ng/dcons",
  year = 2017
}

License

© 2017 - 2021 Karsten Schmidt // Apache Software License 2.0

3.2.146

5 months ago

3.2.145

5 months ago

3.2.143

5 months ago

3.2.144

5 months ago

3.2.142

5 months ago

3.2.141

6 months ago

3.2.140

6 months ago

3.2.139

6 months ago

3.2.138

6 months ago

3.2.137

6 months ago

3.2.136

7 months ago

3.2.135

7 months ago

3.2.134

7 months ago

3.2.133

8 months ago

3.2.132

9 months ago

3.2.131

9 months ago

3.2.114

1 year ago

3.2.116

1 year ago

3.2.115

1 year ago

3.2.118

1 year ago

3.2.117

1 year ago

3.2.119

1 year ago

3.2.125

11 months ago

3.2.124

11 months ago

3.2.127

10 months ago

3.2.126

11 months ago

3.2.121

12 months ago

3.2.120

1 year ago

3.2.123

11 months ago

3.2.122

11 months ago

3.2.129

10 months ago

3.2.128

10 months ago

3.2.130

10 months ago

3.2.113

1 year ago

3.2.112

1 year ago

3.2.111

1 year ago

3.2.110

1 year ago

3.2.109

1 year ago

3.2.108

1 year ago

3.2.107

1 year ago

3.2.106

1 year ago

3.2.105

1 year ago

3.2.104

1 year ago

3.2.103

1 year ago

3.2.102

1 year ago

3.2.101

1 year ago

3.2.100

1 year ago

3.2.99

1 year ago

3.2.98

1 year ago

3.2.97

1 year ago

3.2.95

1 year ago

3.2.94

1 year ago

3.2.96

1 year ago

3.2.93

1 year ago

3.2.92

1 year ago

3.2.91

1 year ago

3.2.90

1 year ago

3.2.89

1 year ago

3.2.86

1 year ago

3.2.85

1 year ago

3.2.88

1 year ago

3.2.87

1 year ago

3.2.84

1 year ago

3.2.83

2 years ago

3.2.82

2 years ago

3.2.81

2 years ago

3.2.79

2 years ago

3.2.78

2 years ago

3.2.80

2 years ago

3.2.77

2 years ago

3.2.76

2 years ago

3.2.75

2 years ago

3.2.68

2 years ago

3.2.67

2 years ago

3.2.69

2 years ago

3.2.60

2 years ago

3.2.62

2 years ago

3.2.61

2 years ago

3.2.64

2 years ago

3.2.63

2 years ago

3.2.66

2 years ago

3.2.65

2 years ago

3.2.71

2 years ago

3.2.70

2 years ago

3.2.73

2 years ago

3.2.72

2 years ago

3.2.74

2 years ago

3.2.46

2 years ago

3.2.48

2 years ago

3.2.47

2 years ago

3.2.49

2 years ago

3.2.57

2 years ago

3.2.56

2 years ago

3.2.59

2 years ago

3.2.58

2 years ago

3.2.51

2 years ago

3.2.50

2 years ago

3.2.53

2 years ago

3.2.52

2 years ago

3.2.55

2 years ago

3.2.54

2 years ago

3.2.45

2 years ago

3.2.44

2 years ago

3.2.42

2 years ago

3.2.43

2 years ago

3.2.37

2 years ago

3.2.36

2 years ago

3.2.39

2 years ago

3.2.38

2 years ago

3.2.40

2 years ago

3.2.41

2 years ago

3.2.35

2 years ago

3.2.34

2 years ago

3.2.31

2 years ago

3.2.33

2 years ago

3.2.32

2 years ago

3.2.26

3 years ago

3.2.28

3 years ago

3.2.27

3 years ago

3.2.29

3 years ago

3.2.30

3 years ago

3.2.24

3 years ago

3.2.23

3 years ago

3.2.25

3 years ago

3.2.20

3 years ago

3.2.22

3 years ago

3.2.21

3 years ago

3.2.17

3 years ago

3.2.16

3 years ago

3.2.19

3 years ago

3.2.18

3 years ago

3.2.15

3 years ago

3.2.14

3 years ago

3.2.13

3 years ago

3.2.6

3 years ago

3.2.9

3 years ago

3.2.8

3 years ago

3.2.7

3 years ago

3.2.12

3 years ago

3.2.11

3 years ago

3.2.10

3 years ago

3.2.2

3 years ago

3.2.5

3 years ago

3.2.4

3 years ago

3.2.3

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.3

4 years ago

3.1.2

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.1.4

4 years ago

3.0.9

4 years ago

3.0.8

4 years ago

3.0.4

4 years ago

3.0.7

4 years ago

3.0.3

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.3.34

4 years ago

2.3.33

4 years ago

2.3.32

4 years ago

2.3.31

4 years ago

2.3.29

4 years ago

2.3.30

4 years ago

2.3.28

4 years ago

2.3.27

4 years ago

2.3.26

4 years ago

2.3.25

4 years ago

2.3.24

4 years ago

2.3.23

4 years ago

2.3.22

4 years ago

2.3.21

4 years ago

2.3.20

4 years ago

2.3.19

4 years ago

2.3.18

4 years ago

2.3.17

4 years ago

2.3.16

4 years ago

2.3.13

4 years ago

2.3.15

4 years ago

2.3.11

4 years ago

2.3.10

4 years ago

2.3.9

5 years ago

2.3.8

5 years ago

2.3.7

5 years ago

2.3.6

5 years ago

2.3.5

5 years ago

2.3.4

5 years ago

2.3.3

5 years ago

2.3.2

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.32

5 years ago

2.2.31

5 years ago

2.2.30

5 years ago

2.2.28

5 years ago

2.2.29

5 years ago

2.2.27

5 years ago

2.2.26

5 years ago

2.2.24

5 years ago

2.2.25

5 years ago

2.2.23

5 years ago

2.2.22

5 years ago

2.2.21

5 years ago

2.2.20

5 years ago

2.2.19

5 years ago

2.2.18

5 years ago

2.2.17

5 years ago

2.2.16

5 years ago

2.2.15

5 years ago

2.2.14

5 years ago

2.2.13

5 years ago

2.2.12

5 years ago

2.2.11

5 years ago

2.2.10

5 years ago

2.2.9

5 years ago

2.2.8

5 years ago

2.2.7

5 years ago

2.2.6

5 years ago

2.2.5

5 years ago

2.2.2

5 years ago

2.2.1

6 years ago

2.2.0

6 years ago

2.1.6

6 years ago

2.1.5

6 years ago

2.1.4

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.19

6 years ago

2.0.18

6 years ago

2.0.17

6 years ago

2.0.16

6 years ago

2.0.15

6 years ago

2.0.14

6 years ago

2.0.13

6 years ago

2.0.12

6 years ago

2.0.11

6 years ago

2.0.10

6 years ago

2.0.9

6 years ago

2.0.8

6 years ago

2.0.7

6 years ago

2.0.6

6 years ago

2.0.5

6 years ago

2.0.4

6 years ago

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.1.23

7 years ago

1.1.22

7 years ago

1.1.21

7 years ago

1.1.20

7 years ago

1.1.19

7 years ago

1.1.18

7 years ago

1.1.17

7 years ago

1.1.16

7 years ago

1.1.15

7 years ago

1.1.14

7 years ago

1.1.13

7 years ago

1.1.12

7 years ago

1.1.11

7 years ago

1.1.10

7 years ago

1.1.9

7 years ago

1.1.8

7 years ago

1.1.7

7 years ago

1.1.7-alpha.1

7 years ago

1.1.7-alpha.0

7 years ago

1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.3.6

7 years ago

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.19

7 years ago

0.1.18

7 years ago

0.1.17

7 years ago

0.1.16

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.13

7 years ago

0.1.12

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago