File: algorithms.rst

package info (click to toggle)
immer 0.8.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,132 kB
  • sloc: cpp: 27,932; python: 534; makefile: 227; lisp: 175; sh: 114; javascript: 64
file content (28 lines) | stat: -rw-r--r-- 859 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

Algorithms
==========

This module provides overloads of standard algorithms that leverage
the internal structure of the immutable containers to provide faster
iteration. These are drop-in replacements of the respective STL
algorithms that can be a few times faster when applied on immutable
sequences.

For further convenience they can be passed in just a container where
the standard library algorithms require being passed in two iterators.

.. note::

   They are a similar idea to `structure-aware iterators`_
   but implemented using higher order functions in order to support
   structures of any depth.  The downside is that this sometimes
   causes the compiler to generate bigger executable files.

.. _structure-aware iterators: https://www.youtube.com/watch?v=T3oA3zAMH9M


-----

.. doxygengroup:: algorithm
   :project: immer
   :content-only: