- 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.
- C++ Primer習題集(第5版)
- Advanced Quantitative Finance with C++
- Mobile Application Development:JavaScript Frameworks
- Learn to Create WordPress Themes by Building 5 Projects
- Git高手之路
- 營銷數據科學:用R和Python進行預測分析的建模技術
- 從0到1:HTML+CSS快速上手
- 移動互聯網軟件開發實驗指導
- C語言程序設計習題與實驗指導
- Vue.js光速入門及企業項目開發實戰
- 多媒體技術及應用
- JavaScript Concurrency
- Clojure for Finance
- Pandas 1.x Cookbook
- Python機器學習