@@ -2,13 +2,13 @@ Heritage
22========
33
44While 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
66from the functional paradigm. In particular its core data structures, lazy
77iterators, and functions as first class objects can be combined to implement a
88common standard library of functions shared among many functional languages.
99
1010This 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 ``,
1212``chain `` and ``partial `` to complement the standard ``map ``, ``filter ``,
1313``reduce `` already found in the core language. While these libraries contain
1414substantial 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
1717``groupby `` which often complement these core operations.
1818
1919A 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 `_
2222libraries. The ``itertoolz ``/``functoolz `` libraries were eventually merged
2323into the monolithic ``toolz `` project described here.
2424
2525Most contemporary functional languages (Haskell, Scala, Clojure, ...) contain
2626some variation of the functions found in ``toolz ``. The ``toolz `` project
2727generally 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
2929``toolz `` API is also strongly affected by the principles of the Python
3030language itself, and often makes deviations in order to be more approachable to
3131that community.
3232
3333The development of a functional standard library within a popular imperative
3434language is not unique. Similar projects have arisen in other
3535imperative-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
3737notable popularity in the web community. ``LINQ `` in C# follows a similar
3838philosophy 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/ >`_ .
4141
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