- 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.
- OpenDaylight Cookbook
- Redis Applied Design Patterns
- PHP基礎案例教程
- Scala Design Patterns
- Access 2010數據庫基礎與應用項目式教程(第3版)
- Python漫游數學王國:高等數學、線性代數、數理統計及運籌學
- HTML5+CSS3網頁設計
- PhoneGap:Beginner's Guide(Third Edition)
- Oracle 18c 必須掌握的新特性:管理與實戰
- 區塊鏈底層設計Java實戰
- Scala Reactive Programming
- Mobile Device Exploitation Cookbook
- Java程序設計基礎(第6版)
- Python機器學習開發實戰
- Learning Cocos2d-JS Game Development