Functional Python programming :: discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads /
Python is an easy-to-learn and extensible programming language that offers a number of functional programming features. This practical guide demonstrates the Python implementation of a number of functional programming techniques and design patterns. Through this book, you'll understand what fun...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham, UK :
Packt Publishing,
2018.
|
Ausgabe: | Second edition. |
Schlagworte: | |
Online-Zugang: | Volltext |
Zusammenfassung: | Python is an easy-to-learn and extensible programming language that offers a number of functional programming features. This practical guide demonstrates the Python implementation of a number of functional programming techniques and design patterns. Through this book, you'll understand what functional programming is all about, its impact on ... |
Beschreibung: | Includes index. |
Beschreibung: | 1 online resource |
ISBN: | 9781788621854 1788621859 9781788627061 1788627067 |
Internformat
MARC
LEADER | 00000cam a2200000 i 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-on1032707716 | ||
003 | OCoLC | ||
005 | 20241004212047.0 | ||
006 | m o d | ||
007 | cr |n|---||||| | ||
008 | 180428s2018 enk o 001 0 eng d | ||
040 | |a EBLCP |b eng |e pn |c EBLCP |d OCLCQ |d MERUC |d IDB |d OCLCF |d VT2 |d OCLCQ |d LVT |d C6I |d YDX |d N$T |d UKMGB |d ZCU |d UKAHL |d OCLCQ |d K6U |d OCLCO |d OCLCQ |d OCLCO |d OCLCQ |d SXB | ||
015 | |a GBB877786 |2 bnb | ||
016 | 7 | |a 018847176 |2 Uk | |
019 | |a 1032660598 |a 1032720633 |a 1065326113 | ||
020 | |a 9781788621854 | ||
020 | |a 1788621859 | ||
020 | |a 9781788627061 | ||
020 | |a 1788627067 | ||
024 | 3 | |a 9781788627061 | |
035 | |a (OCoLC)1032707716 |z (OCoLC)1032660598 |z (OCoLC)1032720633 |z (OCoLC)1065326113 | ||
037 | |a B09385 |b 01201872 | ||
050 | 4 | |a QA76.73.P98 |b L688 2018 | |
072 | 7 | |a COM |x 051360 |2 bisacsh | |
082 | 7 | |a 005.1/17 |2 23 | |
049 | |a MAIN | ||
100 | 1 | |a Lott, Steven F., |e author. |0 http://id.loc.gov/authorities/names/no2016028047 | |
245 | 1 | 0 | |a Functional Python programming : |b discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / |c Steven F. Lott. |
250 | |a Second edition. | ||
260 | |a Birmingham, UK : |b Packt Publishing, |c 2018. | ||
300 | |a 1 online resource | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
500 | |a Includes index. | ||
520 | |a Python is an easy-to-learn and extensible programming language that offers a number of functional programming features. This practical guide demonstrates the Python implementation of a number of functional programming techniques and design patterns. Through this book, you'll understand what functional programming is all about, its impact on ... | ||
505 | 0 | |a Cover -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Understanding Functional Programming -- Identifying a paradigm -- Subdividing the procedural paradigm -- Using the functional paradigm -- Using a functional hybrid -- Looking at object creation -- The stack of turtles -- A classic example of functional programming -- Exploratory data analysis -- Summary -- Chapter 2: Introducing Essential Functional Concepts -- First-class functions -- Pure functions -- Higher-order functions -- Immutable data -- Strict and non-strict evaluation -- Recursion instead of an explicit loop state -- Functional type systems -- Familiar territory -- Learning some advanced concepts -- Summary -- Chapter 3: Functions, Iterators, and Generators -- Writing pure functions -- Functions as first-class objects -- Using strings -- Using tuples and named tuples -- Using generator expressions -- Exploring the limitations of generators -- Combining generator expressions -- Cleaning raw data with generator functions -- Using lists, dicts, and sets -- Using stateful mappings -- Using the bisect module to create a mapping -- Using stateful sets -- Summary -- Chapter 4: Working with Collections -- An overview of function varieties -- Working with iterables -- Parsing an XML file -- Parsing a file at a higher level -- Pairing up items from a sequence -- Using the iter() function explicitly -- Extending a simple loop -- Applying generator expressions to scalar functions -- Using any() and all() as reductions -- Using len() and sum() -- Using sums and counts for statistics -- Using zip() to structure and flatten sequences -- Unzipping a zipped sequence -- Flattening sequences -- Structuring flat sequences -- Structuring flat sequences -- an alternative approach -- Using reversed() to change the order. | |
505 | 8 | |a Using enumerate() to include a sequence number -- Summary -- Chapter 5: Higher-Order Functions -- Using max() and min() to find extrema -- Using Python lambda forms -- Lambdas and the lambda calculus -- Using the map() function to apply a function to a collection -- Working with lambda forms and map() -- Using map() with multiple sequences -- Using the filter() function to pass or reject data -- Using filter() to identify outliers -- The iter() function with a sentinel value -- Using sorted() to put data in order -- Writing higher-order functions -- Writing higher-order mappings and filters -- Unwrapping data while mapping -- Wrapping additional data while mapping -- Flattening data while mapping -- Structuring data while filtering -- Writing generator functions -- Building higher-order functions with callables -- Assuring good functional design -- Review of some design patterns -- Summary -- Chapter 6: Recursions and Reductions -- Simple numerical recursions -- Implementing tail-call optimization -- Leaving recursion in place -- Handling difficult tail-call optimization -- Processing collections through recursion -- Tail-call optimization for collections -- Reductions and folding a collection from many items to one -- Group-by reduction from many items to fewer -- Building a mapping with Counter -- Building a mapping by sorting -- Grouping or partitioning data by key values -- Writing more general group-by reductions -- Writing higher-order reductions -- Writing file parsers -- Parsing CSV files -- Parsing plain text files with headers -- Summary -- Chapter 7: Additional Tuple Techniques -- Using tuples to collect data -- Using named tuples to collect data -- Building named tuples with functional constructors -- Avoiding stateful classes by using families of tuples -- Assigning statistical ranks -- Wrapping instead of state changing. | |
505 | 8 | |a Rewrapping instead of state changing -- Computing Spearman rank-order correlation -- Polymorphism and type-pattern matching -- Summary -- Chapter 8: The Itertools Module -- Working with the infinite iterators -- Counting with count() -- Counting with float arguments -- Re-iterating a cycle with cycle() -- Repeating a single value with repeat() -- Using the finite iterators -- Assigning numbers with enumerate() -- Running totals with accumulate() -- Combining iterators with chain() -- Partitioning an iterator with groupby() -- Merging iterables with zip_longest() and zip() -- Filtering with compress() -- Picking subsets with islice() -- Stateful filtering with dropwhile() and takewhile() -- Two approaches to filtering with filterfalse() and filter() -- Applying a function to data via starmap() and map() -- Cloning iterators with tee() -- The itertools recipes -- Summary -- Chapter 9: More Itertools Techniques -- Enumerating the Cartesian product -- Reducing a product -- Computing distances -- Getting all pixels and all colors -- Performance analysis -- Rearranging the problem -- Combining two transformations -- Permuting a collection of values -- Generating all combinations -- Recipes -- Summary -- Chapter 10: The Functools Module -- Function tools -- Memoizing previous results with lru_cache -- Defining classes with total ordering -- Defining number classes -- Applying partial arguments with partial() -- Reducing sets of data with the reduce() function -- Combining map() and reduce() -- Using the reduce() and partial() functions -- Using the map() and reduce() functions to sanitize raw data -- Using the groupby() and reduce() functions -- Summary -- Chapter 11: Decorator Design Techniques -- Decorators as higher-order functions -- Using the functools update_wrapper() functions -- Cross-cutting concerns -- Composite design -- Preprocessing bad data. | |
505 | 8 | |a Adding a parameter to a decorator -- Implementing more complex decorators -- Complex design considerations -- Summary -- Chapter 12: The Multiprocessing and Threading Modules -- Functional programming and concurrency -- What concurrency really means -- The boundary conditions -- Sharing resources with process or threads -- Where benefits will accrue -- Using multiprocessing pools and tasks -- Processing many large files -- Parsing log files -- gathering the rows -- Parsing log lines into namedtuples -- Parsing additional fields of an Access object -- Filtering the access details -- Analyzing the access details -- The complete analysis process -- Using a multiprocessing pool for concurrent processing -- Using apply() to make a single request -- Using the map_async(), starmap_async(), and apply_async() functions -- More complex multiprocessing architectures -- Using the concurrent.futures module -- Using concurrent.futures thread pools -- Using the threading and queue modules -- Designing concurrent processing -- Summary -- Chapter 13: Conditional Expressions and the Operator Module -- Evaluating conditional expressions -- Exploiting non-strict dictionary rules -- Filtering true conditional expressions -- Finding a matching pattern -- Using the operator module instead of lambdas -- Getting named attributes when using higher-order functions -- Starmapping with operators -- Reducing with operator module functions -- Summary -- Chapter 14: The PyMonad Library -- Downloading and installing -- Functional composition and currying -- Using curried higher-order functions -- Currying the hard way -- Functional composition and the PyMonad * operator -- Functors and applicative functors -- Using the lazy List() functor -- Monad bind() function and the>> operator -- Implementing simulation with monads -- Additional PyMonad features -- Summary. | |
505 | 8 | |a Chapter 15: A Functional Approach to Web Services -- The HTTP request-response model -- Injecting state through cookies -- Considering a server with a functional design -- Looking more deeply into the functional view -- Nesting the services -- The WSGI standard -- Throwing exceptions during WSGI processing -- Pragmatic WSGI applications -- Defining web services as functions -- Creating the WSGI application -- Getting raw data -- Applying a filter -- Serializing the results -- Serializing data into JSON or CSV formats -- Serializing data into XML -- Serializing data into HTML -- Tracking usage -- Summary -- Chapter 16: Optimizations and Improvements -- Memoization and caching -- Specializing memoization -- Tail recursion optimizations -- Optimizing storage -- Optimizing accuracy -- Reducing accuracy based on audience requirements -- Case study-making a chi-squared decision -- Filtering and reducing the raw data with a Counter object -- Reading summarized data -- Computing sums with a Counter object -- Computing probabilities from Counter objects -- Computing expected values and displaying a contingency table -- Computing the chi-squared value -- Computing the chi-squared threshold -- Computing the incomplete gamma function -- Computing the complete gamma function -- Computing the odds of a distribution being random -- Functional programming design patterns -- Summary -- Other Books You May Enjoy -- Index. | |
588 | 0 | |a Print version record. | |
650 | 0 | |a Python (Computer program language) |0 http://id.loc.gov/authorities/subjects/sh96008834 | |
650 | 0 | |a Application software |x Development. |0 http://id.loc.gov/authorities/subjects/sh95009362 | |
650 | 6 | |a Python (Langage de programmation) | |
650 | 6 | |a Logiciels d'application |x Développement. | |
650 | 7 | |a COMPUTERS |x Programming Languages |x Python. |2 bisacsh | |
650 | 7 | |a Application software |x Development |2 fast | |
650 | 7 | |a Python (Computer program language) |2 fast | |
655 | 4 | |a Electronic book. | |
776 | 0 | 8 | |i Print version: |a F. Lott, Steven. |t Functional Python Programming : Discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads, 2nd Edition. |d Birmingham : Packt Publishing, ©2018 |
856 | 4 | 0 | |l FWS01 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1795477 |3 Volltext |
938 | |a Askews and Holts Library Services |b ASKH |n BDZ0036647439 | ||
938 | |a EBL - Ebook Library |b EBLB |n EBL5353672 | ||
938 | |a EBSCOhost |b EBSC |n 1795477 | ||
938 | |a YBP Library Services |b YANK |n 15302009 | ||
994 | |a 92 |b GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-on1032707716 |
---|---|
_version_ | 1816882420459241474 |
adam_text | |
any_adam_object | |
author | Lott, Steven F. |
author_GND | http://id.loc.gov/authorities/names/no2016028047 |
author_facet | Lott, Steven F. |
author_role | aut |
author_sort | Lott, Steven F. |
author_variant | s f l sf sfl |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.P98 L688 2018 |
callnumber-search | QA76.73.P98 L688 2018 |
callnumber-sort | QA 276.73 P98 L688 42018 |
callnumber-subject | QA - Mathematics |
collection | ZDB-4-EBA |
contents | Cover -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Understanding Functional Programming -- Identifying a paradigm -- Subdividing the procedural paradigm -- Using the functional paradigm -- Using a functional hybrid -- Looking at object creation -- The stack of turtles -- A classic example of functional programming -- Exploratory data analysis -- Summary -- Chapter 2: Introducing Essential Functional Concepts -- First-class functions -- Pure functions -- Higher-order functions -- Immutable data -- Strict and non-strict evaluation -- Recursion instead of an explicit loop state -- Functional type systems -- Familiar territory -- Learning some advanced concepts -- Summary -- Chapter 3: Functions, Iterators, and Generators -- Writing pure functions -- Functions as first-class objects -- Using strings -- Using tuples and named tuples -- Using generator expressions -- Exploring the limitations of generators -- Combining generator expressions -- Cleaning raw data with generator functions -- Using lists, dicts, and sets -- Using stateful mappings -- Using the bisect module to create a mapping -- Using stateful sets -- Summary -- Chapter 4: Working with Collections -- An overview of function varieties -- Working with iterables -- Parsing an XML file -- Parsing a file at a higher level -- Pairing up items from a sequence -- Using the iter() function explicitly -- Extending a simple loop -- Applying generator expressions to scalar functions -- Using any() and all() as reductions -- Using len() and sum() -- Using sums and counts for statistics -- Using zip() to structure and flatten sequences -- Unzipping a zipped sequence -- Flattening sequences -- Structuring flat sequences -- Structuring flat sequences -- an alternative approach -- Using reversed() to change the order. Using enumerate() to include a sequence number -- Summary -- Chapter 5: Higher-Order Functions -- Using max() and min() to find extrema -- Using Python lambda forms -- Lambdas and the lambda calculus -- Using the map() function to apply a function to a collection -- Working with lambda forms and map() -- Using map() with multiple sequences -- Using the filter() function to pass or reject data -- Using filter() to identify outliers -- The iter() function with a sentinel value -- Using sorted() to put data in order -- Writing higher-order functions -- Writing higher-order mappings and filters -- Unwrapping data while mapping -- Wrapping additional data while mapping -- Flattening data while mapping -- Structuring data while filtering -- Writing generator functions -- Building higher-order functions with callables -- Assuring good functional design -- Review of some design patterns -- Summary -- Chapter 6: Recursions and Reductions -- Simple numerical recursions -- Implementing tail-call optimization -- Leaving recursion in place -- Handling difficult tail-call optimization -- Processing collections through recursion -- Tail-call optimization for collections -- Reductions and folding a collection from many items to one -- Group-by reduction from many items to fewer -- Building a mapping with Counter -- Building a mapping by sorting -- Grouping or partitioning data by key values -- Writing more general group-by reductions -- Writing higher-order reductions -- Writing file parsers -- Parsing CSV files -- Parsing plain text files with headers -- Summary -- Chapter 7: Additional Tuple Techniques -- Using tuples to collect data -- Using named tuples to collect data -- Building named tuples with functional constructors -- Avoiding stateful classes by using families of tuples -- Assigning statistical ranks -- Wrapping instead of state changing. Rewrapping instead of state changing -- Computing Spearman rank-order correlation -- Polymorphism and type-pattern matching -- Summary -- Chapter 8: The Itertools Module -- Working with the infinite iterators -- Counting with count() -- Counting with float arguments -- Re-iterating a cycle with cycle() -- Repeating a single value with repeat() -- Using the finite iterators -- Assigning numbers with enumerate() -- Running totals with accumulate() -- Combining iterators with chain() -- Partitioning an iterator with groupby() -- Merging iterables with zip_longest() and zip() -- Filtering with compress() -- Picking subsets with islice() -- Stateful filtering with dropwhile() and takewhile() -- Two approaches to filtering with filterfalse() and filter() -- Applying a function to data via starmap() and map() -- Cloning iterators with tee() -- The itertools recipes -- Summary -- Chapter 9: More Itertools Techniques -- Enumerating the Cartesian product -- Reducing a product -- Computing distances -- Getting all pixels and all colors -- Performance analysis -- Rearranging the problem -- Combining two transformations -- Permuting a collection of values -- Generating all combinations -- Recipes -- Summary -- Chapter 10: The Functools Module -- Function tools -- Memoizing previous results with lru_cache -- Defining classes with total ordering -- Defining number classes -- Applying partial arguments with partial() -- Reducing sets of data with the reduce() function -- Combining map() and reduce() -- Using the reduce() and partial() functions -- Using the map() and reduce() functions to sanitize raw data -- Using the groupby() and reduce() functions -- Summary -- Chapter 11: Decorator Design Techniques -- Decorators as higher-order functions -- Using the functools update_wrapper() functions -- Cross-cutting concerns -- Composite design -- Preprocessing bad data. Adding a parameter to a decorator -- Implementing more complex decorators -- Complex design considerations -- Summary -- Chapter 12: The Multiprocessing and Threading Modules -- Functional programming and concurrency -- What concurrency really means -- The boundary conditions -- Sharing resources with process or threads -- Where benefits will accrue -- Using multiprocessing pools and tasks -- Processing many large files -- Parsing log files -- gathering the rows -- Parsing log lines into namedtuples -- Parsing additional fields of an Access object -- Filtering the access details -- Analyzing the access details -- The complete analysis process -- Using a multiprocessing pool for concurrent processing -- Using apply() to make a single request -- Using the map_async(), starmap_async(), and apply_async() functions -- More complex multiprocessing architectures -- Using the concurrent.futures module -- Using concurrent.futures thread pools -- Using the threading and queue modules -- Designing concurrent processing -- Summary -- Chapter 13: Conditional Expressions and the Operator Module -- Evaluating conditional expressions -- Exploiting non-strict dictionary rules -- Filtering true conditional expressions -- Finding a matching pattern -- Using the operator module instead of lambdas -- Getting named attributes when using higher-order functions -- Starmapping with operators -- Reducing with operator module functions -- Summary -- Chapter 14: The PyMonad Library -- Downloading and installing -- Functional composition and currying -- Using curried higher-order functions -- Currying the hard way -- Functional composition and the PyMonad * operator -- Functors and applicative functors -- Using the lazy List() functor -- Monad bind() function and the>> operator -- Implementing simulation with monads -- Additional PyMonad features -- Summary. Chapter 15: A Functional Approach to Web Services -- The HTTP request-response model -- Injecting state through cookies -- Considering a server with a functional design -- Looking more deeply into the functional view -- Nesting the services -- The WSGI standard -- Throwing exceptions during WSGI processing -- Pragmatic WSGI applications -- Defining web services as functions -- Creating the WSGI application -- Getting raw data -- Applying a filter -- Serializing the results -- Serializing data into JSON or CSV formats -- Serializing data into XML -- Serializing data into HTML -- Tracking usage -- Summary -- Chapter 16: Optimizations and Improvements -- Memoization and caching -- Specializing memoization -- Tail recursion optimizations -- Optimizing storage -- Optimizing accuracy -- Reducing accuracy based on audience requirements -- Case study-making a chi-squared decision -- Filtering and reducing the raw data with a Counter object -- Reading summarized data -- Computing sums with a Counter object -- Computing probabilities from Counter objects -- Computing expected values and displaying a contingency table -- Computing the chi-squared value -- Computing the chi-squared threshold -- Computing the incomplete gamma function -- Computing the complete gamma function -- Computing the odds of a distribution being random -- Functional programming design patterns -- Summary -- Other Books You May Enjoy -- Index. |
ctrlnum | (OCoLC)1032707716 |
dewey-full | 005.1/17 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1/17 |
dewey-search | 005.1/17 |
dewey-sort | 15.1 217 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | Second edition. |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>11941cam a2200649 i 4500</leader><controlfield tag="001">ZDB-4-EBA-on1032707716</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr |n|---|||||</controlfield><controlfield tag="008">180428s2018 enk o 001 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">EBLCP</subfield><subfield code="b">eng</subfield><subfield code="e">pn</subfield><subfield code="c">EBLCP</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">MERUC</subfield><subfield code="d">IDB</subfield><subfield code="d">OCLCF</subfield><subfield code="d">VT2</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">LVT</subfield><subfield code="d">C6I</subfield><subfield code="d">YDX</subfield><subfield code="d">N$T</subfield><subfield code="d">UKMGB</subfield><subfield code="d">ZCU</subfield><subfield code="d">UKAHL</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">K6U</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">SXB</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBB877786</subfield><subfield code="2">bnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">018847176</subfield><subfield code="2">Uk</subfield></datafield><datafield tag="019" ind1=" " ind2=" "><subfield code="a">1032660598</subfield><subfield code="a">1032720633</subfield><subfield code="a">1065326113</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781788621854</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1788621859</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781788627061</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1788627067</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9781788627061</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1032707716</subfield><subfield code="z">(OCoLC)1032660598</subfield><subfield code="z">(OCoLC)1032720633</subfield><subfield code="z">(OCoLC)1065326113</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">B09385</subfield><subfield code="b">01201872</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.73.P98</subfield><subfield code="b">L688 2018</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">COM</subfield><subfield code="x">051360</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.1/17</subfield><subfield code="2">23</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Lott, Steven F.,</subfield><subfield code="e">author.</subfield><subfield code="0">http://id.loc.gov/authorities/names/no2016028047</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Functional Python programming :</subfield><subfield code="b">discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads /</subfield><subfield code="c">Steven F. Lott.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">Second edition.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Birmingham, UK :</subfield><subfield code="b">Packt Publishing,</subfield><subfield code="c">2018.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes index.</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">Python is an easy-to-learn and extensible programming language that offers a number of functional programming features. This practical guide demonstrates the Python implementation of a number of functional programming techniques and design patterns. Through this book, you'll understand what functional programming is all about, its impact on ...</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Cover -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Understanding Functional Programming -- Identifying a paradigm -- Subdividing the procedural paradigm -- Using the functional paradigm -- Using a functional hybrid -- Looking at object creation -- The stack of turtles -- A classic example of functional programming -- Exploratory data analysis -- Summary -- Chapter 2: Introducing Essential Functional Concepts -- First-class functions -- Pure functions -- Higher-order functions -- Immutable data -- Strict and non-strict evaluation -- Recursion instead of an explicit loop state -- Functional type systems -- Familiar territory -- Learning some advanced concepts -- Summary -- Chapter 3: Functions, Iterators, and Generators -- Writing pure functions -- Functions as first-class objects -- Using strings -- Using tuples and named tuples -- Using generator expressions -- Exploring the limitations of generators -- Combining generator expressions -- Cleaning raw data with generator functions -- Using lists, dicts, and sets -- Using stateful mappings -- Using the bisect module to create a mapping -- Using stateful sets -- Summary -- Chapter 4: Working with Collections -- An overview of function varieties -- Working with iterables -- Parsing an XML file -- Parsing a file at a higher level -- Pairing up items from a sequence -- Using the iter() function explicitly -- Extending a simple loop -- Applying generator expressions to scalar functions -- Using any() and all() as reductions -- Using len() and sum() -- Using sums and counts for statistics -- Using zip() to structure and flatten sequences -- Unzipping a zipped sequence -- Flattening sequences -- Structuring flat sequences -- Structuring flat sequences -- an alternative approach -- Using reversed() to change the order.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Using enumerate() to include a sequence number -- Summary -- Chapter 5: Higher-Order Functions -- Using max() and min() to find extrema -- Using Python lambda forms -- Lambdas and the lambda calculus -- Using the map() function to apply a function to a collection -- Working with lambda forms and map() -- Using map() with multiple sequences -- Using the filter() function to pass or reject data -- Using filter() to identify outliers -- The iter() function with a sentinel value -- Using sorted() to put data in order -- Writing higher-order functions -- Writing higher-order mappings and filters -- Unwrapping data while mapping -- Wrapping additional data while mapping -- Flattening data while mapping -- Structuring data while filtering -- Writing generator functions -- Building higher-order functions with callables -- Assuring good functional design -- Review of some design patterns -- Summary -- Chapter 6: Recursions and Reductions -- Simple numerical recursions -- Implementing tail-call optimization -- Leaving recursion in place -- Handling difficult tail-call optimization -- Processing collections through recursion -- Tail-call optimization for collections -- Reductions and folding a collection from many items to one -- Group-by reduction from many items to fewer -- Building a mapping with Counter -- Building a mapping by sorting -- Grouping or partitioning data by key values -- Writing more general group-by reductions -- Writing higher-order reductions -- Writing file parsers -- Parsing CSV files -- Parsing plain text files with headers -- Summary -- Chapter 7: Additional Tuple Techniques -- Using tuples to collect data -- Using named tuples to collect data -- Building named tuples with functional constructors -- Avoiding stateful classes by using families of tuples -- Assigning statistical ranks -- Wrapping instead of state changing.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Rewrapping instead of state changing -- Computing Spearman rank-order correlation -- Polymorphism and type-pattern matching -- Summary -- Chapter 8: The Itertools Module -- Working with the infinite iterators -- Counting with count() -- Counting with float arguments -- Re-iterating a cycle with cycle() -- Repeating a single value with repeat() -- Using the finite iterators -- Assigning numbers with enumerate() -- Running totals with accumulate() -- Combining iterators with chain() -- Partitioning an iterator with groupby() -- Merging iterables with zip_longest() and zip() -- Filtering with compress() -- Picking subsets with islice() -- Stateful filtering with dropwhile() and takewhile() -- Two approaches to filtering with filterfalse() and filter() -- Applying a function to data via starmap() and map() -- Cloning iterators with tee() -- The itertools recipes -- Summary -- Chapter 9: More Itertools Techniques -- Enumerating the Cartesian product -- Reducing a product -- Computing distances -- Getting all pixels and all colors -- Performance analysis -- Rearranging the problem -- Combining two transformations -- Permuting a collection of values -- Generating all combinations -- Recipes -- Summary -- Chapter 10: The Functools Module -- Function tools -- Memoizing previous results with lru_cache -- Defining classes with total ordering -- Defining number classes -- Applying partial arguments with partial() -- Reducing sets of data with the reduce() function -- Combining map() and reduce() -- Using the reduce() and partial() functions -- Using the map() and reduce() functions to sanitize raw data -- Using the groupby() and reduce() functions -- Summary -- Chapter 11: Decorator Design Techniques -- Decorators as higher-order functions -- Using the functools update_wrapper() functions -- Cross-cutting concerns -- Composite design -- Preprocessing bad data.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Adding a parameter to a decorator -- Implementing more complex decorators -- Complex design considerations -- Summary -- Chapter 12: The Multiprocessing and Threading Modules -- Functional programming and concurrency -- What concurrency really means -- The boundary conditions -- Sharing resources with process or threads -- Where benefits will accrue -- Using multiprocessing pools and tasks -- Processing many large files -- Parsing log files -- gathering the rows -- Parsing log lines into namedtuples -- Parsing additional fields of an Access object -- Filtering the access details -- Analyzing the access details -- The complete analysis process -- Using a multiprocessing pool for concurrent processing -- Using apply() to make a single request -- Using the map_async(), starmap_async(), and apply_async() functions -- More complex multiprocessing architectures -- Using the concurrent.futures module -- Using concurrent.futures thread pools -- Using the threading and queue modules -- Designing concurrent processing -- Summary -- Chapter 13: Conditional Expressions and the Operator Module -- Evaluating conditional expressions -- Exploiting non-strict dictionary rules -- Filtering true conditional expressions -- Finding a matching pattern -- Using the operator module instead of lambdas -- Getting named attributes when using higher-order functions -- Starmapping with operators -- Reducing with operator module functions -- Summary -- Chapter 14: The PyMonad Library -- Downloading and installing -- Functional composition and currying -- Using curried higher-order functions -- Currying the hard way -- Functional composition and the PyMonad * operator -- Functors and applicative functors -- Using the lazy List() functor -- Monad bind() function and the>> operator -- Implementing simulation with monads -- Additional PyMonad features -- Summary.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Chapter 15: A Functional Approach to Web Services -- The HTTP request-response model -- Injecting state through cookies -- Considering a server with a functional design -- Looking more deeply into the functional view -- Nesting the services -- The WSGI standard -- Throwing exceptions during WSGI processing -- Pragmatic WSGI applications -- Defining web services as functions -- Creating the WSGI application -- Getting raw data -- Applying a filter -- Serializing the results -- Serializing data into JSON or CSV formats -- Serializing data into XML -- Serializing data into HTML -- Tracking usage -- Summary -- Chapter 16: Optimizations and Improvements -- Memoization and caching -- Specializing memoization -- Tail recursion optimizations -- Optimizing storage -- Optimizing accuracy -- Reducing accuracy based on audience requirements -- Case study-making a chi-squared decision -- Filtering and reducing the raw data with a Counter object -- Reading summarized data -- Computing sums with a Counter object -- Computing probabilities from Counter objects -- Computing expected values and displaying a contingency table -- Computing the chi-squared value -- Computing the chi-squared threshold -- Computing the incomplete gamma function -- Computing the complete gamma function -- Computing the odds of a distribution being random -- Functional programming design patterns -- Summary -- Other Books You May Enjoy -- Index.</subfield></datafield><datafield tag="588" ind1="0" ind2=" "><subfield code="a">Print version record.</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Python (Computer program language)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh96008834</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Application software</subfield><subfield code="x">Development.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh95009362</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Python (Langage de programmation)</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Logiciels d'application</subfield><subfield code="x">Développement.</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS</subfield><subfield code="x">Programming Languages</subfield><subfield code="x">Python.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Application software</subfield><subfield code="x">Development</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Python (Computer program language)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="655" ind1=" " ind2="4"><subfield code="a">Electronic book.</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">F. Lott, Steven.</subfield><subfield code="t">Functional Python Programming : Discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads, 2nd Edition.</subfield><subfield code="d">Birmingham : Packt Publishing, ©2018</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="l">FWS01</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1795477</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Askews and Holts Library Services</subfield><subfield code="b">ASKH</subfield><subfield code="n">BDZ0036647439</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBL - Ebook Library</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL5353672</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">1795477</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">YBP Library Services</subfield><subfield code="b">YANK</subfield><subfield code="n">15302009</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
genre | Electronic book. |
genre_facet | Electronic book. |
id | ZDB-4-EBA-on1032707716 |
illustrated | Not Illustrated |
indexdate | 2024-11-27T13:28:19Z |
institution | BVB |
isbn | 9781788621854 1788621859 9781788627061 1788627067 |
language | English |
oclc_num | 1032707716 |
open_access_boolean | |
owner | MAIN DE-863 DE-BY-FWS |
owner_facet | MAIN DE-863 DE-BY-FWS |
physical | 1 online resource |
psigel | ZDB-4-EBA |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | Packt Publishing, |
record_format | marc |
spelling | Lott, Steven F., author. http://id.loc.gov/authorities/names/no2016028047 Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / Steven F. Lott. Second edition. Birmingham, UK : Packt Publishing, 2018. 1 online resource text txt rdacontent computer c rdamedia online resource cr rdacarrier Includes index. Python is an easy-to-learn and extensible programming language that offers a number of functional programming features. This practical guide demonstrates the Python implementation of a number of functional programming techniques and design patterns. Through this book, you'll understand what functional programming is all about, its impact on ... Cover -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Understanding Functional Programming -- Identifying a paradigm -- Subdividing the procedural paradigm -- Using the functional paradigm -- Using a functional hybrid -- Looking at object creation -- The stack of turtles -- A classic example of functional programming -- Exploratory data analysis -- Summary -- Chapter 2: Introducing Essential Functional Concepts -- First-class functions -- Pure functions -- Higher-order functions -- Immutable data -- Strict and non-strict evaluation -- Recursion instead of an explicit loop state -- Functional type systems -- Familiar territory -- Learning some advanced concepts -- Summary -- Chapter 3: Functions, Iterators, and Generators -- Writing pure functions -- Functions as first-class objects -- Using strings -- Using tuples and named tuples -- Using generator expressions -- Exploring the limitations of generators -- Combining generator expressions -- Cleaning raw data with generator functions -- Using lists, dicts, and sets -- Using stateful mappings -- Using the bisect module to create a mapping -- Using stateful sets -- Summary -- Chapter 4: Working with Collections -- An overview of function varieties -- Working with iterables -- Parsing an XML file -- Parsing a file at a higher level -- Pairing up items from a sequence -- Using the iter() function explicitly -- Extending a simple loop -- Applying generator expressions to scalar functions -- Using any() and all() as reductions -- Using len() and sum() -- Using sums and counts for statistics -- Using zip() to structure and flatten sequences -- Unzipping a zipped sequence -- Flattening sequences -- Structuring flat sequences -- Structuring flat sequences -- an alternative approach -- Using reversed() to change the order. Using enumerate() to include a sequence number -- Summary -- Chapter 5: Higher-Order Functions -- Using max() and min() to find extrema -- Using Python lambda forms -- Lambdas and the lambda calculus -- Using the map() function to apply a function to a collection -- Working with lambda forms and map() -- Using map() with multiple sequences -- Using the filter() function to pass or reject data -- Using filter() to identify outliers -- The iter() function with a sentinel value -- Using sorted() to put data in order -- Writing higher-order functions -- Writing higher-order mappings and filters -- Unwrapping data while mapping -- Wrapping additional data while mapping -- Flattening data while mapping -- Structuring data while filtering -- Writing generator functions -- Building higher-order functions with callables -- Assuring good functional design -- Review of some design patterns -- Summary -- Chapter 6: Recursions and Reductions -- Simple numerical recursions -- Implementing tail-call optimization -- Leaving recursion in place -- Handling difficult tail-call optimization -- Processing collections through recursion -- Tail-call optimization for collections -- Reductions and folding a collection from many items to one -- Group-by reduction from many items to fewer -- Building a mapping with Counter -- Building a mapping by sorting -- Grouping or partitioning data by key values -- Writing more general group-by reductions -- Writing higher-order reductions -- Writing file parsers -- Parsing CSV files -- Parsing plain text files with headers -- Summary -- Chapter 7: Additional Tuple Techniques -- Using tuples to collect data -- Using named tuples to collect data -- Building named tuples with functional constructors -- Avoiding stateful classes by using families of tuples -- Assigning statistical ranks -- Wrapping instead of state changing. Rewrapping instead of state changing -- Computing Spearman rank-order correlation -- Polymorphism and type-pattern matching -- Summary -- Chapter 8: The Itertools Module -- Working with the infinite iterators -- Counting with count() -- Counting with float arguments -- Re-iterating a cycle with cycle() -- Repeating a single value with repeat() -- Using the finite iterators -- Assigning numbers with enumerate() -- Running totals with accumulate() -- Combining iterators with chain() -- Partitioning an iterator with groupby() -- Merging iterables with zip_longest() and zip() -- Filtering with compress() -- Picking subsets with islice() -- Stateful filtering with dropwhile() and takewhile() -- Two approaches to filtering with filterfalse() and filter() -- Applying a function to data via starmap() and map() -- Cloning iterators with tee() -- The itertools recipes -- Summary -- Chapter 9: More Itertools Techniques -- Enumerating the Cartesian product -- Reducing a product -- Computing distances -- Getting all pixels and all colors -- Performance analysis -- Rearranging the problem -- Combining two transformations -- Permuting a collection of values -- Generating all combinations -- Recipes -- Summary -- Chapter 10: The Functools Module -- Function tools -- Memoizing previous results with lru_cache -- Defining classes with total ordering -- Defining number classes -- Applying partial arguments with partial() -- Reducing sets of data with the reduce() function -- Combining map() and reduce() -- Using the reduce() and partial() functions -- Using the map() and reduce() functions to sanitize raw data -- Using the groupby() and reduce() functions -- Summary -- Chapter 11: Decorator Design Techniques -- Decorators as higher-order functions -- Using the functools update_wrapper() functions -- Cross-cutting concerns -- Composite design -- Preprocessing bad data. Adding a parameter to a decorator -- Implementing more complex decorators -- Complex design considerations -- Summary -- Chapter 12: The Multiprocessing and Threading Modules -- Functional programming and concurrency -- What concurrency really means -- The boundary conditions -- Sharing resources with process or threads -- Where benefits will accrue -- Using multiprocessing pools and tasks -- Processing many large files -- Parsing log files -- gathering the rows -- Parsing log lines into namedtuples -- Parsing additional fields of an Access object -- Filtering the access details -- Analyzing the access details -- The complete analysis process -- Using a multiprocessing pool for concurrent processing -- Using apply() to make a single request -- Using the map_async(), starmap_async(), and apply_async() functions -- More complex multiprocessing architectures -- Using the concurrent.futures module -- Using concurrent.futures thread pools -- Using the threading and queue modules -- Designing concurrent processing -- Summary -- Chapter 13: Conditional Expressions and the Operator Module -- Evaluating conditional expressions -- Exploiting non-strict dictionary rules -- Filtering true conditional expressions -- Finding a matching pattern -- Using the operator module instead of lambdas -- Getting named attributes when using higher-order functions -- Starmapping with operators -- Reducing with operator module functions -- Summary -- Chapter 14: The PyMonad Library -- Downloading and installing -- Functional composition and currying -- Using curried higher-order functions -- Currying the hard way -- Functional composition and the PyMonad * operator -- Functors and applicative functors -- Using the lazy List() functor -- Monad bind() function and the>> operator -- Implementing simulation with monads -- Additional PyMonad features -- Summary. Chapter 15: A Functional Approach to Web Services -- The HTTP request-response model -- Injecting state through cookies -- Considering a server with a functional design -- Looking more deeply into the functional view -- Nesting the services -- The WSGI standard -- Throwing exceptions during WSGI processing -- Pragmatic WSGI applications -- Defining web services as functions -- Creating the WSGI application -- Getting raw data -- Applying a filter -- Serializing the results -- Serializing data into JSON or CSV formats -- Serializing data into XML -- Serializing data into HTML -- Tracking usage -- Summary -- Chapter 16: Optimizations and Improvements -- Memoization and caching -- Specializing memoization -- Tail recursion optimizations -- Optimizing storage -- Optimizing accuracy -- Reducing accuracy based on audience requirements -- Case study-making a chi-squared decision -- Filtering and reducing the raw data with a Counter object -- Reading summarized data -- Computing sums with a Counter object -- Computing probabilities from Counter objects -- Computing expected values and displaying a contingency table -- Computing the chi-squared value -- Computing the chi-squared threshold -- Computing the incomplete gamma function -- Computing the complete gamma function -- Computing the odds of a distribution being random -- Functional programming design patterns -- Summary -- Other Books You May Enjoy -- Index. Print version record. Python (Computer program language) http://id.loc.gov/authorities/subjects/sh96008834 Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 Python (Langage de programmation) Logiciels d'application Développement. COMPUTERS Programming Languages Python. bisacsh Application software Development fast Python (Computer program language) fast Electronic book. Print version: F. Lott, Steven. Functional Python Programming : Discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads, 2nd Edition. Birmingham : Packt Publishing, ©2018 FWS01 ZDB-4-EBA FWS_PDA_EBA https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1795477 Volltext |
spellingShingle | Lott, Steven F. Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / Cover -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Understanding Functional Programming -- Identifying a paradigm -- Subdividing the procedural paradigm -- Using the functional paradigm -- Using a functional hybrid -- Looking at object creation -- The stack of turtles -- A classic example of functional programming -- Exploratory data analysis -- Summary -- Chapter 2: Introducing Essential Functional Concepts -- First-class functions -- Pure functions -- Higher-order functions -- Immutable data -- Strict and non-strict evaluation -- Recursion instead of an explicit loop state -- Functional type systems -- Familiar territory -- Learning some advanced concepts -- Summary -- Chapter 3: Functions, Iterators, and Generators -- Writing pure functions -- Functions as first-class objects -- Using strings -- Using tuples and named tuples -- Using generator expressions -- Exploring the limitations of generators -- Combining generator expressions -- Cleaning raw data with generator functions -- Using lists, dicts, and sets -- Using stateful mappings -- Using the bisect module to create a mapping -- Using stateful sets -- Summary -- Chapter 4: Working with Collections -- An overview of function varieties -- Working with iterables -- Parsing an XML file -- Parsing a file at a higher level -- Pairing up items from a sequence -- Using the iter() function explicitly -- Extending a simple loop -- Applying generator expressions to scalar functions -- Using any() and all() as reductions -- Using len() and sum() -- Using sums and counts for statistics -- Using zip() to structure and flatten sequences -- Unzipping a zipped sequence -- Flattening sequences -- Structuring flat sequences -- Structuring flat sequences -- an alternative approach -- Using reversed() to change the order. Using enumerate() to include a sequence number -- Summary -- Chapter 5: Higher-Order Functions -- Using max() and min() to find extrema -- Using Python lambda forms -- Lambdas and the lambda calculus -- Using the map() function to apply a function to a collection -- Working with lambda forms and map() -- Using map() with multiple sequences -- Using the filter() function to pass or reject data -- Using filter() to identify outliers -- The iter() function with a sentinel value -- Using sorted() to put data in order -- Writing higher-order functions -- Writing higher-order mappings and filters -- Unwrapping data while mapping -- Wrapping additional data while mapping -- Flattening data while mapping -- Structuring data while filtering -- Writing generator functions -- Building higher-order functions with callables -- Assuring good functional design -- Review of some design patterns -- Summary -- Chapter 6: Recursions and Reductions -- Simple numerical recursions -- Implementing tail-call optimization -- Leaving recursion in place -- Handling difficult tail-call optimization -- Processing collections through recursion -- Tail-call optimization for collections -- Reductions and folding a collection from many items to one -- Group-by reduction from many items to fewer -- Building a mapping with Counter -- Building a mapping by sorting -- Grouping or partitioning data by key values -- Writing more general group-by reductions -- Writing higher-order reductions -- Writing file parsers -- Parsing CSV files -- Parsing plain text files with headers -- Summary -- Chapter 7: Additional Tuple Techniques -- Using tuples to collect data -- Using named tuples to collect data -- Building named tuples with functional constructors -- Avoiding stateful classes by using families of tuples -- Assigning statistical ranks -- Wrapping instead of state changing. Rewrapping instead of state changing -- Computing Spearman rank-order correlation -- Polymorphism and type-pattern matching -- Summary -- Chapter 8: The Itertools Module -- Working with the infinite iterators -- Counting with count() -- Counting with float arguments -- Re-iterating a cycle with cycle() -- Repeating a single value with repeat() -- Using the finite iterators -- Assigning numbers with enumerate() -- Running totals with accumulate() -- Combining iterators with chain() -- Partitioning an iterator with groupby() -- Merging iterables with zip_longest() and zip() -- Filtering with compress() -- Picking subsets with islice() -- Stateful filtering with dropwhile() and takewhile() -- Two approaches to filtering with filterfalse() and filter() -- Applying a function to data via starmap() and map() -- Cloning iterators with tee() -- The itertools recipes -- Summary -- Chapter 9: More Itertools Techniques -- Enumerating the Cartesian product -- Reducing a product -- Computing distances -- Getting all pixels and all colors -- Performance analysis -- Rearranging the problem -- Combining two transformations -- Permuting a collection of values -- Generating all combinations -- Recipes -- Summary -- Chapter 10: The Functools Module -- Function tools -- Memoizing previous results with lru_cache -- Defining classes with total ordering -- Defining number classes -- Applying partial arguments with partial() -- Reducing sets of data with the reduce() function -- Combining map() and reduce() -- Using the reduce() and partial() functions -- Using the map() and reduce() functions to sanitize raw data -- Using the groupby() and reduce() functions -- Summary -- Chapter 11: Decorator Design Techniques -- Decorators as higher-order functions -- Using the functools update_wrapper() functions -- Cross-cutting concerns -- Composite design -- Preprocessing bad data. Adding a parameter to a decorator -- Implementing more complex decorators -- Complex design considerations -- Summary -- Chapter 12: The Multiprocessing and Threading Modules -- Functional programming and concurrency -- What concurrency really means -- The boundary conditions -- Sharing resources with process or threads -- Where benefits will accrue -- Using multiprocessing pools and tasks -- Processing many large files -- Parsing log files -- gathering the rows -- Parsing log lines into namedtuples -- Parsing additional fields of an Access object -- Filtering the access details -- Analyzing the access details -- The complete analysis process -- Using a multiprocessing pool for concurrent processing -- Using apply() to make a single request -- Using the map_async(), starmap_async(), and apply_async() functions -- More complex multiprocessing architectures -- Using the concurrent.futures module -- Using concurrent.futures thread pools -- Using the threading and queue modules -- Designing concurrent processing -- Summary -- Chapter 13: Conditional Expressions and the Operator Module -- Evaluating conditional expressions -- Exploiting non-strict dictionary rules -- Filtering true conditional expressions -- Finding a matching pattern -- Using the operator module instead of lambdas -- Getting named attributes when using higher-order functions -- Starmapping with operators -- Reducing with operator module functions -- Summary -- Chapter 14: The PyMonad Library -- Downloading and installing -- Functional composition and currying -- Using curried higher-order functions -- Currying the hard way -- Functional composition and the PyMonad * operator -- Functors and applicative functors -- Using the lazy List() functor -- Monad bind() function and the>> operator -- Implementing simulation with monads -- Additional PyMonad features -- Summary. Chapter 15: A Functional Approach to Web Services -- The HTTP request-response model -- Injecting state through cookies -- Considering a server with a functional design -- Looking more deeply into the functional view -- Nesting the services -- The WSGI standard -- Throwing exceptions during WSGI processing -- Pragmatic WSGI applications -- Defining web services as functions -- Creating the WSGI application -- Getting raw data -- Applying a filter -- Serializing the results -- Serializing data into JSON or CSV formats -- Serializing data into XML -- Serializing data into HTML -- Tracking usage -- Summary -- Chapter 16: Optimizations and Improvements -- Memoization and caching -- Specializing memoization -- Tail recursion optimizations -- Optimizing storage -- Optimizing accuracy -- Reducing accuracy based on audience requirements -- Case study-making a chi-squared decision -- Filtering and reducing the raw data with a Counter object -- Reading summarized data -- Computing sums with a Counter object -- Computing probabilities from Counter objects -- Computing expected values and displaying a contingency table -- Computing the chi-squared value -- Computing the chi-squared threshold -- Computing the incomplete gamma function -- Computing the complete gamma function -- Computing the odds of a distribution being random -- Functional programming design patterns -- Summary -- Other Books You May Enjoy -- Index. Python (Computer program language) http://id.loc.gov/authorities/subjects/sh96008834 Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 Python (Langage de programmation) Logiciels d'application Développement. COMPUTERS Programming Languages Python. bisacsh Application software Development fast Python (Computer program language) fast |
subject_GND | http://id.loc.gov/authorities/subjects/sh96008834 http://id.loc.gov/authorities/subjects/sh95009362 |
title | Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / |
title_auth | Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / |
title_exact_search | Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / |
title_full | Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / Steven F. Lott. |
title_fullStr | Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / Steven F. Lott. |
title_full_unstemmed | Functional Python programming : discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / Steven F. Lott. |
title_short | Functional Python programming : |
title_sort | functional python programming discover the power of functional programming generator functions lazy evaluation the built in itertools library and monads |
title_sub | discover the power of functional programming, generator functions, lazy evaluation, the built-in itertools library, and monads / |
topic | Python (Computer program language) http://id.loc.gov/authorities/subjects/sh96008834 Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 Python (Langage de programmation) Logiciels d'application Développement. COMPUTERS Programming Languages Python. bisacsh Application software Development fast Python (Computer program language) fast |
topic_facet | Python (Computer program language) Application software Development. Python (Langage de programmation) Logiciels d'application Développement. COMPUTERS Programming Languages Python. Application software Development Electronic book. |
url | https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1795477 |
work_keys_str_mv | AT lottstevenf functionalpythonprogrammingdiscoverthepoweroffunctionalprogramminggeneratorfunctionslazyevaluationthebuiltinitertoolslibraryandmonads |