- Functional Python Programming
- Steven F. Lott
- 233字
- 2021-08-27 19:20:22
Higher-order functions
We can achieve expressive, succinct programs using higher-order functions. These are functions that accept a function as an argument or return a function as a value. We can use higher-order functions as a way to create composite functions from simpler functions.
Consider the Python max() function. We can provide a function as an argument and modify how the max() function behaves.
Here's some data we might want to process:
>>> year_cheese = [(2000, 29.87), (2001, 30.12), (2002, 30.6), (2003,
30.66),(2004, 31.33), (2005, 32.62), (2006, 32.73), (2007, 33.5),
(2008, 32.84), (2009, 33.02), (2010, 32.92)]
We can apply the max() function, as follows:
>>> max(year_cheese) (2010, 32.92)
The default behavior is to simply compare each tuple in the sequence. This will return the tuple with the largest value on position 0.
Since the max() function is a higher-order function, we can provide another function as an argument. In this case, we'll use lambda as the function; this is used by the max() function, as follows:
>>> max(year_cheese, key=lambda yc: yc[1]) (2007, 33.5)
In this example, the max() function applies the supplied lambda and returns the tuple with the largest value in position 1.
Python provides a rich collection of higher-order functions. We'll see examples of each of Python's higher-order functions in later chapters, primarily in Chapter 5, Higher-Order Functions. We'll also see how we can easily write our own higher-order functions.
- Java逍遙游記
- Monkey Game Development:Beginner's Guide
- Redis Applied Design Patterns
- Rake Task Management Essentials
- Unreal Engine 4 Shaders and Effects Cookbook
- 自制編程語言
- Java網絡編程實戰
- MyBatis 3源碼深度解析
- SCRATCH編程課:我的游戲我做主
- Building UIs with Wijmo
- Java面向對象程序設計教程
- Microsoft XNA 4.0 Game Development Cookbook
- Thymeleaf 3完全手冊
- PhoneGap 3.x Mobile Application Development Hotshot
- Web前端開發實戰教程(HTML5+CSS3+JavaScript)(微課版)