LEADER 04397nam 2200649Ia 450 001 9910451201603321 005 20200520144314.0 010 $a1-281-01008-1 010 $a9786611010089 010 $a1-4237-0817-2 010 $a0-08-047834-4 035 $a(CKB)1000000000341422 035 $a(EBL)232133 035 $a(OCoLC)171114249 035 $a(SSID)ssj0000171015 035 $a(PQKBManifestationID)11164119 035 $a(PQKBTitleCode)TC0000171015 035 $a(PQKBWorkID)10235921 035 $a(PQKB)10392805 035 $a(MiAaPQ)EBC232133 035 $a(CaSebORM)9781558607019 035 $a(Au-PeEL)EBL232133 035 $a(CaPaEBR)ebr10127962 035 $a(CaONFJC)MIL101008 035 $a(OCoLC)936898176 035 $a(EXLCZ)991000000000341422 100 $a20040728d2005 uy 0 101 0 $aeng 135 $aur|n|---||||| 181 $ctxt 182 $cc 183 $acr 200 10$aHigher-order Perl$b[electronic resource] $ea guide to program transformation /$fMark Jason Dominus 205 $a1st ed. 210 $aAmsterdam ;$aBoston, Mass. $cMorgan Kaufmann Publishers$dc2005 215 $a1 online resource (601 p.) 300 $aIncludes indexes. 311 $a1-55860-701-3 327 $aFront Cover; Higher-Order Perl: A Guide to Program Transformation; Copyright Page; Contents; Preface; Chapter 1. Recursion and Callbacks; 1.1 Decimal to Binary Conversion; 1.2 Factorial; 1.3 The Tower of Hanoi; 1.4 Hierarchical Data; 1.5 Applications and Variations of Directory Walking; 1.6 Functional Versus Object-Oriented Programming; 1.7 HTML; 1.8 When Recursion Blows Up; Chapter 2. Dispatch Tables; 2.1 Configuration File Handling; 2.2 Calculator; Chapter 3. Caching and Memoization; 3.1 Caching Fixes Recursion; 3.2 Inline Caching; 3.3 Good Ideas; 3.4 Memoization; 3.5 The Memoize Module 327 $a3.6 Caveats3.7 Key Generation; 3.8 Caching in Object Methods; 3.9 Persistent Caches; 3.10 Alternatives to Memoization; 3.11 Evangelism; 3.12 The Benefits of Speed; Chapter 4. Iterators; 4.1 Introduction; 4.2 Homemade Iterators; 4.3 Examples; 4.4 Filters and Transforms; 4.5 The Semipredicate Problem; 4.6 Alternative Interfaces to Iterators; 4.7 An Extended Example: Web Spiders; Chapter 5. From Recursion to Iterators; 5.1 The Partition Problem Revisited; 5.2 How to Convert a Recursive Function to an Iterator; 5.3 A Generic Search Iterator; 5.4 Other General Techniques for Eliminating Recursion 327 $aChapter 6. Indinite Streams6.1 Linked Lists; 6.2 Lazy Linked Lists; 6.3 Recursive Streams; 6.4 The Hamming Problem; 6.5 Regex String Generation; 6.6 The Newton-Raphson Method; 6.7 Power Series; Chapter 7. Higher-Order Functions and Currying; 7.1 Currying; 7.2 Common Higher-Order Functions; 7.3 reduce() and combine(); 7.4 Databases; Chapter 8. Parsing; 8.1 Lexers; 8.2 Parsing in General; 8.3 Recursive-Descent Parsers; 8.4 Arithmetic Expressions; 8.5 Parsing Regexes; 8.6 Outlines; 8.7 Database-Query Parsing; 8.8 Backtracking Parsers; 8.9 Overloading; Chapter 9. Declarative Programming 327 $a9.1 Constraint Systems9.2 Local Propagation Networks; 9.3 Linear Equations; 9.4 linogram: A Drawing System; 9.5 Conclusion; Index; Function Index; A Note About the Cover 330 $aMost Perl programmers were originally trained as C and Unix programmers, so the Perl programs that they write bear a strong resemblance to C programs. However, Perl incorporates many features that have their roots in other languages such as Lisp. These advanced features are not well understood and are rarely used by most Perl programmers, but they are very powerful. They can automate tasks in everyday programming that are difficult to solve in any other way. One of the most powerful of these techniques is writing functions that manufacture or modify other functions. For example, instead of wri 606 $aPerl (Computer program language) 606 $aObject-oriented programming (Computer science) 608 $aElectronic books. 615 0$aPerl (Computer program language) 615 0$aObject-oriented programming (Computer science) 676 $a005.13/3 700 $aDominus$b Mark Jason$f1969-$0933895 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910451201603321 996 $aHigher-order Perl$92102579 997 $aUNINA