Library Hours
Monday to Friday: 9 a.m. to 9 p.m.
Saturday: 9 a.m. to 5 p.m.
Sunday: 1 p.m. to 9 p.m.
Naper Blvd. 1 p.m. to 5 p.m.

LEADER 00000cam a2200889Ia 4500 
001    871683861 
003    OCoLC 
005    20240129213017.0 
006    m     o  d         
007    cr unu|||||||| 
008    140307s2014    nyua    ob    001 0 eng d 
019    880827073|a906193111|a959587436|a961603829|a966358290
       |a1066497932|a1067204670 
020    9781430262510|q(electronic bk.) 
020    1430262516|q(electronic bk.) 
024 7  10.1007/978-1-4302-6251-0|2doi 
029 1  AU@|b000053308408 
029 1  AU@|b000061961944 
029 1  CHNEW|b000887662 
029 1  CHVBK|b374465797 
029 1  DEBBG|bBV041792681 
029 1  DEBBG|bBV042031756 
029 1  DEBBG|bBV043609427 
029 1  DEBSZ|b407738606 
029 1  DEBSZ|b414172140 
029 1  AU@|b000067095902 
029 1  AU@|b000068987826 
035    (OCoLC)871683861|z(OCoLC)880827073|z(OCoLC)906193111
       |z(OCoLC)959587436|z(OCoLC)961603829|z(OCoLC)966358290
       |z(OCoLC)1066497932|z(OCoLC)1067204670 
037    CL0500000395|bSafari Books Online 
040    UMI|beng|epn|cUMI|dGW5XE|dB24X7|dCOO|dYDXCP|dIDEBK|dDEBBG
       |dE7B|dCDX|dDEBSZ|dN$T|dOCLCF|dOCLCQ|dYDX|dOCLCO|dZ5A|dLIV
       |dMERUC|dOCLCQ|dESU|dUWW|dEBLCP|dVT2|dIOG|dREB|dUUM|dCEF
       |dINT|dU3W|dOCLCQ|dWYU|dYOU|dUWO|dOCLCQ|dUAB|dOCLCA|dUKAHL
       |dOCLCQ|dBRF|dOCLCO|dOCLCQ|dOCLCO 
049    INap 
082 04 005.13/3 
082 04 005.13/3|223 
099    eBook O'Reilly for Public Libraries 
100 1  Mena, Alejandro Serrano. 
245 10 Beginning Haskell :|ba project-based approach /|cAlejandro
       Serrano Mena.|h[O'Reilly electronic resource] 
260    [New York] :|bApress,|c©2014. 
300    1 online resource (1 volume) :|billustrations 
336    text|btxt|2rdacontent 
337    computer|bc|2rdamedia 
338    online resource|bcr|2rdacarrier 
347    text file|bPDF|2rda 
490 1  The expert's voice in programming 
500    Includes index. 
504    Includes bibliographical references and index. 
505 0  At a Glance -- Contents -- About the Author -- About the 
       Technical Reviewer -- Acknowledgments -- Introduction -- 
       Part 1: First Steps -- Chapter 1: Going Functional -- Why 
       Haskell? -- Why Pure Functional Programming? -- Why Strong
       Static Typing? -- The Haskell Ecosystem -- The History of 
       Haskell -- Your Working Environment -- Installing on 
       Windows -- Installing on Mac OS X -- Installing on Linux -
       - Installing on Linux from Source -- Checking That the 
       Installation is Successful -- Installing EclipseFP -- 
       First steps with GHCi -- The Time Machine Store -- Summary
       -- Chapter 2: Declaring the Data Model -- Working with 
       Characters, Numbers, and Lists -- Characters -- Numbers --
       Strings -- Lists -- Lists Operations -- Creating a New 
       Project -- Creating a Project from the Command Line -- 
       Creating a Project from EclipseFP -- Understanding Modules
       -- Defining Simple Functions -- Creating a Simple Function
       -- Specifying the Function's Type -- Developing a Robust 
       Example -- Returning More than One Value -- Working with 
       Data Types -- Pattern Matching -- Simple Patterns -- Lists
       and Tuples -- Guards -- View Patterns -- Records -- 
       Creation and Use -- The "Default Values" Idiom -- Summary 
       -- Chapter 3: Reusing Code Through Lists -- Parametric 
       Polymorphism -- Functions as Parameters -- Higher-Order 
       Functions -- Anonymous Functions -- Partial Application of
       a Function -- More on Modules -- Module Imports -- Smart 
       Constructors and Views -- Diving into Lists -- Folds -- 
       Lists and Predicates -- Lists Containing Tuples -- List 
       Comprehensions -- Haskell Origami -- Summary -- Chapter 4:
       Using Containers and Type Classes -- Using Packages -- 
       Managing Packages with Cabal and EclipseFP -- Sandboxed 
       Environments -- Containers: Maps, Sets, Trees, Graphs -- 
       Maps -- Sets -- Trees -- Graphs -- Obtaining Help -- Ad-
       hoc Polymorphism: Type Classes. 
505 8  Declaring Classes and Instances -- Built-in Type Classes -
       - Binary Tress for the Minimum Price -- Step 1: Simple 
       Binary Trees -- Step 2: Polymorphic Binary Trees -- Step 3
       : Binary Trees with Monoidal Cache -- Container-related 
       Type Classes -- Functors -- Foldables -- Summary -- 
       Chapter 5: Laziness and Infinite Structures -- An Infinite
       Number of Time Machines -- Lazy Evaluation Model -- 
       Understanding Evaluation in Haskell -- Problems with 
       Laziness -- Pattern Matching and Laziness -- Profiling 
       with GHC -- Strictness Annotations -- Summary -- Part 2: 
       Data Mining -- Chapter 6: Knowing Your Clients Using 
       Monads -- Data Mining -- Implementing K-means -- Lenses --
       Discovering Monads -- Watching out for Incomplete Data -- 
       Combinators for State -- Dissecting the Combinators -- do 
       Notation -- Monad Laws -- Different Sorts of State -- 
       State and Lenses -- Reader, Writer, and RWS -- Mutable 
       References with ST -- Summary -- Chapter 7: More Monads: 
       Now for Recommendations -- Returning More Than One Value -
       - The List Monad -- A New View Over Monads -- Failures and
       Alternatives -- Association Rules Learning. -- Flattening 
       Values into Transactions -- The Apriori Algorithm -- 
       Search Problems -- Paths in a Graph -- The Logic Monad -- 
       Monads and Lists Redux -- Combining Values Under a Monad -
       - Monad Comprehensions -- Combining Monads -- Monad 
       Transformers -- Monad Classes -- Summary -- Chapter 8: 
       Working in Several Cores -- Parallelism, Concurrency, 
       Distribution -- The Par Monad -- Futures -- Dataflow 
       Parallelism with IVars -- Parallelizing the Apriori 
       Algorithm -- Software Transactional Memory -- Concurrent 
       Use of Resources -- Atomic Transactions -- Rolling Back 
       Transactions -- Producer-Consumer Queues -- Cloud Haskell 
       -- Looking for Galaxies -- Looking for Typed Galaxies -- 
       Extra Features -- Summary -- Part 3: Resource Handling. 
505 8  Chapter 9: Dealing with Files: IO and Conduit -- Basic 
       Input and Output -- Randomness -- Working with Files -- 
       Reading and Writing -- Handling Files -- Error Handling --
       Pure Errors -- Catching Exceptions -- Throwing Exceptions 
       -- Streaming Data with Conduit -- Problems with Lazy Input
       /Output -- Introducing Conduits -- Accessing Files via 
       Conduit -- Looking Further than Text Files -- Basic 
       Networking -- Binary Serialization -- Summary -- Chapter 
       10: Building and Parsing Text -- The Five Textual Data 
       Types -- Building as Fast as the Wind -- Parsing with 
       attoparsec -- Introducing New Type Classes -- Applicative 
       -- Functors, Applicatives, and Monads -- Alternative -- 
       Traversable -- Don't Overengineer: Just Use JSON -- 
       Summary -- Chapter 11: Safe Database Access -- Database 
       Access Landscape -- Abstracting over Several DBMSs -- 
       Introducing Persistent and Esqueleto -- Connection -- 
       Schemas and Migrations -- Describing the Entities -- 
       Creating the Database -- Queries -- Queries by Identifier 
       or Uniqueness -- Selecting Several Entities -- SQL Queries
       with Esqueleto -- Insertions, Updates, and Deletions -- 
       Summary -- Chapter 12: Web Applications -- Haskell Web 
       Ecosystem -- Web Frameworks -- Compilation to Javascript -
       - RESTful Structure -- Backend with Scotty -- Simple 
       Skeleton -- Showing Products from the Database -- 
       Inserting New Products Using Forms -- Frontend with Fay --
       Foreign Function Interface -- Fay and jQuery -- Summary --
       Part 4: Domain Specific Languages -- Chapter 13: Strong 
       Types for Describing Offers -- Domain Specific Languages -
       - Embedding Your Language in Haskell -- The Offers 
       Language -- Adding Safety to the Expression Language -- 
       Dependent Typing -- Introducing Idris -- Enforcing the 
       Presents Rule in Idris -- Type-level Programming in 
       Haskell -- Two Styles of Programming -- Representing 
       Natural Numbers -- Functional Dependencies. 
505 8  Categories of Products with FDs -- Enforcing the Presents 
       Rule with FDs -- Type Families -- Enforcing the Presents 
       Rule with TFs -- Categories of Products with TFs -- Data 
       Type Promotion and Singletons -- A Further Refinement to 
       the Presents Rule -- Enforcing the Duration Rule -- 
       Summary -- Chapter 14: Interpreting Offers with Attributes
       -- Interpretations and Attribute Grammars -- A Simple 
       Interpretation -- Introducing Attribute Grammars -- Your 
       First Attribute Grammar -- Synthesizing the Result -- 
       Executing the Attribute Grammar -- Integrating UUAGC in 
       Your Package -- Installing UUAGC -- UUAGC and Cabal -- 
       Expressions Interpretation -- Using an Attribute Grammar -
       - Precomputing Some Values -- A Different (Monadic) View -
       - Offer Interpretations -- Checking the Presents Rule -- 
       Showing a HTML Description -- Origami Programming Over Any
       Data Type -- Summary -- Part 5: Engineering the Store -- 
       Chapter 15: Documenting, Testing, and Verifying -- 
       Documenting Binary Trees with Haddock -- Unit Testing with
       HUnit -- Declaring Tests in Cabal -- Writing Unit Tests --
       Randomized Testing with QuickCheck -- Testing List 
       Properties -- Testing Binary Tree Properties -- Formal 
       Verification with Idris -- Summary -- Chapter 16: 
       Architecting Your Application -- Design Patterns and 
       Functional Programming -- Medium-Level Guidelines -- Use 
       Higher-Order Combinators -- Refactor -- Use Type Classes 
       Wisely -- Enforce Invariants via the Type System -- Stay 
       (as) Pure and Polymorphic (as Possible) -- Tools -- 
       Project and Dependency Management -- Code Style -- 
       Documentation -- Test and Verification -- Benchmarking -- 
       Profiling -- Coverage -- Remote Monitoring -- Projects -- 
       Data Mining Library -- Store Network Client -- 
       Administration Interface and Tetris -- Roll Your Own Monad
       -- Summary -- APPENDIX A: Looking Further -- Haskell 
       Resources -- Other Functional Languages. 
505 8  APPENDIX B: Time Traveling with Haskell -- Index. 
520    Beginning Haskell provides a broad-based introduction to 
       the Haskell language, its libraries and environment, and 
       to the functional programming paradigm that is fast 
       growing in importance in the software industry. The book 
       takes a project-based approach to learning the language 
       that is unified around the building of a web-based 
       storefront. Excellent coverage is given to the Haskell 
       ecosystem and supporting tools. These include the Cabal 
       build tool for managing projects and modules, the HUnit 
       and QuickCheck tools for software testing, the Scotty 
       framework for developing web applications, Persistent and 
       Esqueleto for database access, and also parallel and 
       distributed programming libraries. Functional programming 
       is gathering momentum, allowing programmers to express 
       themselves in a more concise way, reducing boilerplate and
       increasing the safety of code. Indeed, mainstream 
       languages such as C♯ and Java are adopting features from 
       functional programming, and from languages implementing 
       that paradigm. Haskell is an elegant and noise-free pure 
       functional language with a long history, having a huge 
       number of library contributors and an active community. 
       This makes Haskell the best tool for both learning and 
       applying functional programming, and Beginning Haskell the
       perfect book to show off the language and what it can do. 
       Takes you through a series of projects showing the 
       different parts of the language. Provides an overview of 
       the most important libraries and tools in the Haskell 
       ecosystem. Teaches you how to apply functional patterns in
       real-world scenarios. 
588 0  Online resource; title from title page (Safari, viewed 
       Feb. 19, 2014). 
590    O'Reilly|bO'Reilly Online Learning: Academic/Public 
       Library Edition 
650  0 Haskell (Computer program language) 
650  0 Functional programming (Computer science) 
650  6 Haskell (Langage de programmation) 
650  6 Programmation fonctionnelle. 
650  7 Functional programming (Computer science)|2fast 
650  7 Haskell (Computer program language)|2fast 
650  7 HASKELL|2gnd 
650 17 Haskell (programmeertaal)|0(NL-LeOCL)194972054|2gtt 
776 08 |iPrint version:|aMena, Alejandro Serrano.|tBeginning 
       Haskell.|dBerkeley : Apress, 2014|z1430262508|w(DLC)  
       2014466576|w(OCoLC)862346456 
830  0 Expert's voice in programming. 
856 40 |uhttps://ezproxy.naperville-lib.org/login?url=https://
       learning.oreilly.com/library/view/~/9781430262503/?ar
       |zAvailable on O'Reilly for Public Libraries 
938    Askews and Holts Library Services|bASKH|nAH29483067 
938    Books 24x7|bB247|nbks00062343 
938    Coutts Information Services|bCOUT|n28233650 
938    EBL - Ebook Library|bEBLB|nEBL1694197 
938    ebrary|bEBRY|nebr10845461 
938    EBSCOhost|bEBSC|n883349 
938    ProQuest MyiLibrary Digital eBook Collection|bIDEB
       |ncis28233650 
938    YBP Library Services|bYANK|n11729238 
994    92|bJFN