官术网_书友最值得收藏!

  • Mastering Python
  • Rick van Hattem
  • 268字
  • 2021-07-16 11:10:34

Chapter 4. Functional Programming – Readability Versus Brevity

Python is one of the few (or at least the earliest) nonfunctional languages to incorporate functional features. While Guido van Rossum has tried to remove some of them a few times, they have become ingrained in the Python community, and list comprehensions (dict and set comprehensions soon to follow) are widely used in all sorts of code. The most important thing about code shouldn't be how cool your reduce statement is or how you can fit the entire function in a single line with an incomprehensible list comprehension. Readability counts (once again, PEP20)!

This chapter will show you some of the cool tricks that functional programming in Python gives you, and it will explain some of the limitations of Python's implementation. While we will try to steer clear of lambda calculus (λ-calculus) as much as possible, the Y combinator will be discussed briefly.

The last few paragraphs will list (and explain) the usage of the functools and itertools libraries. If you are familiar with these libraries, feel free to skip them, but note that some of these will be used heavily in the later chapters about decorators (Chapter 5, Decorators – Enabling Code Reuse by Decorating), generators (Chapter 6, Generators and Coroutines – Infinity, One Step at a Time), and performance (Chapter 12, Performance – Tracking and Reducing Your Memory and CPU Usage).

These are the topics covered in this chapter:

  • The theory behind functional programming
  • list comprehensions
  • dict comprehensions
  • set comprehensions
  • lambda functions
  • functools (partial, and reduce)
  • itertools (accumulate, chain, dropwhile, starmap, and so on)
主站蜘蛛池模板: 滦平县| 青州市| 加查县| 大连市| 垦利县| 岫岩| 日土县| 隆德县| 玉树县| 临湘市| 隆回县| 安龙县| 丽水市| 巴里| 镇远县| 抚远县| 曲松县| 新邵县| 清原| 衢州市| 望城县| 宝清县| 广汉市| 华宁县| 综艺| 凤山县| 自治县| 东兰县| 龙口市| 遂平县| 方山县| 吴川市| 元阳县| 德江县| 鹰潭市| 新巴尔虎右旗| 沛县| 衡南县| 神池县| 晋江市| 安丘市|