- Functional Python Programming
- Steven F. Lott
- 230字
- 2021-08-27 19:20:23
Functional type systems
Some functional programming languages, such as Haskell and Scala, are statically compiled, and depend on declared types for functions and their arguments. To provide the kind of flexibility Python already has, these languages have sophisticated type-matching rules so that a generic function can be written, which works for a variety of related types.
In Object-Oriented Python, we often use the class inheritance hierarchy instead of sophisticated function type matching. We rely on Python to dispatch an operator to a proper method based on simple name-matching rules.
Since Python already has the desired levels of flexibility, the type matching rules for a compiled functional language aren't relevant. Indeed, we could argue that the sophisticated type matching is a workaround imposed by static compilation. Python doesn't need this workaround because it's a dynamic language.
Python 3 introduces type hints. These can be used by a program like mypy to discern potential problems with type mismatches. Using type hints is superior to using tests such ase assert isinstance(a, int) to detect whether an argument value for the a parameter is an int. An assert statement is a runtime burden. Running mypy to validate the hints is generally part of ordinary quality assurance. It's a common practice to run mypy and pylint along with unit tests to confirm that software is correct.
- JavaScript高效圖形編程
- jQuery EasyUI網站開發實戰
- 實戰Java程序設計
- 精通網絡視頻核心開發技術
- Python Data Analysis Cookbook
- R Data Analysis Cookbook(Second Edition)
- Android移動開發案例教程:基于Android Studio開發環境
- 多媒體技術及應用
- Professional JavaScript
- Managing Windows Servers with Chef
- HTML5+CSS+JavaScript深入學習實錄
- Learning Scrapy
- C++程序設計習題與實驗指導
- WCF 4.5 Multi-Layer Services Development with Entity Framework(Third Edition)
- Go Programming Cookbook(Second Edition)