Functional Python Programming: Discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads, 2/e

Steven F. Lott

買這商品的人也買了...

相關主題

商品描述

Create succinct and expressive implementations with functional programming in Python

Key Features

  • Learn how to choose between imperative and functional approaches based on expressiveness, clarity, and performance
  • Get familiar with complex concepts such as monads, concurrency, and immutability
  • Apply functional Python to common Exploratory Data Analysis (EDA) programming problems

Book Description

If you're a Python developer who wants to discover how to take the power of functional programming (FP) and bring it into your own programs, then this book is essential for you, even if you know next to nothing about the paradigm.

Starting with a general overview of functional concepts, you'll explore common functional features such as first-class and higher-order functions, pure functions, and more. You'll see how these are accomplished in Python 3.6 to give you the core foundations you'll build upon. After that, you'll discover common functional optimizations for Python to help your apps reach even higher speeds.

You'll learn FP concepts such as lazy evaluation using Python's generator functions and expressions. Moving forward, you'll learn to design and implement decorators to create composite functions. You'll also explore data preparation techniques and data exploration in depth, and see how the Python standard library fits the functional programming model. Finally, to top off your journey into the world of functional Python, you'll at look at the PyMonad project and some larger examples to put everything into perspective.

What you will learn

  • Use Python's generator functions and generator expressions to work with collections in a non-strict (or lazy) manner
  • Utilize Python library modules including itertools, functools, multiprocessing, and concurrent features to ensure efficient functional programs
  • Use Python strings with object-oriented suffix notation and prefix notation
  • Avoid stateful classes with families of tuples
  • Design and implement decorators to create composite functions
  • Use functions such as max(), min(), map(), filter(), and sorted()
  • Write higher-order functions

Who This Book Is For

This book is for Python developers who would like to perform Functional programming with Python. Python Programming knowledge is assumed.

Table of Contents

  1. Understanding Functional Programming
  2. Introducing essential functional concepts
  3. Functions, Iterators and Generators
  4. Working with Collections
  5. Higher-Order Functions
  6. Recursions and Reductions
  7. Additional tuple techiques
  8. The Itertools Module
  9. More Itertools Techniques
  10. The Functools Module
  11. Decorator Design Techniques
  12. The Multiprocessing and Threading Modules
  13. The Operator Module
  14. The PyMonad Library
  15. A Functional Approach to Web Services
  16. Optimizations and Improvements

商品描述(中文翻譯)

以Python進行函數式編程:創建簡潔且表達力強的實現

主要特點


  • 學習如何根據表達力、清晰度和性能選擇命令式和函數式方法

  • 熟悉複雜的概念,如單子、並發性和不可變性

  • 將函數式Python應用於常見的探索性數據分析(EDA)編程問題

書籍描述

如果你是一個Python開發者,想要發現如何將函數式編程(FP)的力量引入自己的程序中,那麼即使你對這種編程范式幾乎一無所知,這本書對你來說也是必不可少的。

從函數式概念的概述開始,你將探索常見的函數式特性,如一級和高階函數、純函數等等。你將看到這些特性如何在Python 3.6中實現,為你打下核心基礎。之後,你將發現Python的常見函數式優化,以幫助你的應用程序達到更高的速度。

你將學習FP概念,如使用Python的生成器函數和表達式進行惰性求值。接下來,你將學習設計和實現裝飾器以創建組合函數。你還將深入探索數據準備技術和數據探索,並了解Python標準庫如何符合函數式編程模型。最後,為了完善你對函數式Python世界的探索,你將看看PyMonad項目和一些更大的示例,以將一切放入透視。

你將學到什麼


  • 使用Python的生成器函數和生成器表達式以非嚴格(或惰性)方式處理集合

  • 利用Python庫模塊,包括itertools、functools、multiprocessing和並發功能,確保高效的函數式程序

  • 使用面向對象的後綴表示法和前綴表示法處理Python字符串

  • 避免具有元組族的有狀態類

  • 設計和實現裝飾器以創建組合函數

  • 使用max()、min()、map()、filter()和sorted()等函數

  • 編寫高階函數

適合閱讀對象

本書適合希望使用Python進行函數式編程的開發者。假設讀者已具備Python編程知識。

目錄


  1. 理解函數式編程

  2. 介紹基本的函數式概念

  3. 函數、迭代器和生成器

  4. 處理集合

  5. 高階函數

  6. 遞歸和歸納

  7. 其他元組技巧

  8. itertools模塊

  9. 更多itertools技巧

  10. functools模塊

  11. 裝飾器設計技巧

  12. multiprocessing和threading模塊

  13. operator模塊

  14. PyMonad庫

  15. 面向Web服務的函數式方法

  16. 優化和改進