@@ -2,13 +2,13 @@ Heritage
2
2
========
3
3
4
4
While Python was originally intended as an imperative language
5
- [Guido _ ], it contains all elements necessary to support a rich set of features
5
+ [` Guido `_ ], it contains all elements necessary to support a rich set of features
6
6
from the functional paradigm. In particular its core data structures, lazy
7
7
iterators, and functions as first class objects can be combined to implement a
8
8
common standard library of functions shared among many functional languages.
9
9
10
10
This was first recognized and supported through the standard libraries
11
- itertools _ and functools _ which contain functions like ``permutations ``,
11
+ itertools _ and ` functools `_ which contain functions like ``permutations ``,
12
12
``chain `` and ``partial `` to complement the standard ``map ``, ``filter ``,
13
13
``reduce `` already found in the core language. While these libraries contain
14
14
substantial functionality they do not achieve the same level of adoption found
@@ -17,35 +17,31 @@ incomplete and lack a number of commonly related functions like ``compose`` and
17
17
``groupby `` which often complement these core operations.
18
18
19
19
A completion of this set of functions was first attempted in the projects
20
- itertoolz _ and functoolz _ (note the z). These libraries contained
21
- several functions that were absent in the standard itertools _/ functools _
20
+ ` itertoolz `_ and ` functoolz `_ (note the z). These libraries contained
21
+ several functions that were absent in the standard itertools _ / ` functools `_
22
22
libraries. The ``itertoolz ``/``functoolz `` libraries were eventually merged
23
23
into the monolithic ``toolz `` project described here.
24
24
25
25
Most contemporary functional languages (Haskell, Scala, Clojure, ...) contain
26
26
some variation of the functions found in ``toolz ``. The ``toolz `` project
27
27
generally adheres closely to the API found in the Clojure standard library (see
28
- cheatsheet _ ) and where disagreements occur that API usually dominates. The
28
+ ` cheatsheet `_ ) and where disagreements occur that API usually dominates. The
29
29
``toolz `` API is also strongly affected by the principles of the Python
30
30
language itself, and often makes deviations in order to be more approachable to
31
31
that community.
32
32
33
33
The development of a functional standard library within a popular imperative
34
34
language is not unique. Similar projects have arisen in other
35
35
imperative-by-design languages that contain the necessary elements to support a
36
- functional standard library. Underscore.js _ in JavaScript has attained
36
+ functional standard library. ` Underscore.js < https://underscorejs.org >`_ in JavaScript has attained
37
37
notable popularity in the web community. ``LINQ `` in C# follows a similar
38
38
philosophy but mimics declarative database languages rather than functional
39
- ones. Enumerable _ is is the closest project in Ruby. Other excellent projects
40
- also exist within the Python ecosystem, most notably Fn.py _ and Funcy _ .
39
+ ones. ` Enumerable < https://ruby-doc.org/core-2.0.0/Enumerable.html >`_ is is the closest project in Ruby. Other excellent projects
40
+ also exist within the Python ecosystem, most notably ` Fn.py < https://github.com/kachayev/fn.py >`_ and ` Funcy < https://github.com/suor/funcy/ >`_ .
41
41
42
- .. [itertools ] https://docs.python.org/2/library/itertools.html
43
- .. [functools ] https://docs.python.org/2/library/functools.html
44
- .. [itertoolz ] https://github.com/mrocklin/itertoolz
45
- .. [functoolz ] https://github.com/mrocklin/functoolz
46
- .. [Underscore.js ] https://underscorejs.org
47
- .. [cheatsheet ] https://clojure.org/cheatsheet
48
- .. [Guido ] https://python-history.blogspot.com/2009/04/origins-of-pythons-functional-features.html
49
- .. [Enumerable ] https://ruby-doc.org/core-2.0.0/Enumerable.html
50
- .. [funcy ] https://github.com/suor/funcy/
51
- .. [fn.py ] https://github.com/kachayev/fn.py
42
+ .. _itertools : https://docs.python.org/library/itertools.html
43
+ .. _functools : https://docs.python.org/library/functools.html
44
+ .. _itertoolz : https://github.com/mrocklin/itertoolz
45
+ .. _functoolz : https://github.com/mrocklin/functoolz
46
+ .. _cheatsheet : https://clojure.org/cheatsheet
47
+ .. _Guido : https://python-history.blogspot.com/2009/04/origins-of-pythons-functional-features.html
0 commit comments