Functional Programming in Scala
Autor Michael Pilquist, Runar Bjarnason, Paul Chiusanoen Limba Engleză Paperback – 6 iun 2023
Observăm în Functional Programming in Scala o metodologie riguroasă care transformă paradigma programării funcționale dintr-un concept teoretic într-un set de instrumente pragmatice pentru dezvoltatorul modern. Cartea nu se rezumă la prezentarea sintaxei Scala 3, ci reconstruiește arhitectura software pornind de la principii fundamentale. Metodologia propusă de Michael Pilquist, Runar Bjarnason și Paul Chiusano elimină complet efectele secundare în favoarea funcțiilor pure, oferind o perspectivă nouă asupra modului în care gestionăm erorile fără excepții și starea programului prin structuri de date imuabile. Ca și Michel Charpentier în Functional and Concurrent Programming, autorii distilează experiența reală în principii acționabile, însă aici focusul este strict pe ecosistemul Scala. Structura este una progresivă: prima parte stabilește bazele (evaluare leneșă, structuri funcționale), partea a doua trece la designul bibliotecilor combinatorii (testare bazată pe proprietăți și paralelizare), iar partea a treia explorează structurile comune de design, precum monadele și functorii. Ultima secțiune abordează pragmatismul necesar în producție: procesarea stream-urilor și I/O incremental. Remarcăm că fiecare exercițiu este însoțit de adnotări extinse, facilitând o înțelegere profundă a conceptelor de abstractizare. Spre deosebire de Pragmatic Scala 2e de Venkat Subramaniam, care pune accent pe fuziunea dintre obiect-orientare și funcțional, acest volum de la Manning adoptă o poziție purist-funcțională, forțând cititorul să gândească în termeni de compoziție și transformări matematice riguroase. Este un parcurs dens, dar esențial pentru cei care doresc să stăpânească sistemul de tipuri și puterea de abstractizare a limbajului Scala 3.
Preț: 350.83 lei
Preț vechi: 438.54 lei
-20%
Carte disponibilă
Livrare economică 26 septembrie-10 octombrie
Livrare express 12-18 septembrie pentru 51.47 lei
Specificații
ISBN-10: 1617299588
Pagini: 488
Dimensiuni: 189 x 237 x 31 mm
Greutate: 0.89 kg
Ediția:2. Auflage
Editura: Manning
De ce să citești această carte
Recomandăm această carte programatorilor care doresc să treacă dincolo de utilizarea superficială a limbajului Scala. Veți câștiga o înțelegere profundă a designului funcțional, învățând cum să scrieți cod mai sigur, testabil și ușor de raționat. Este resursa ideală pentru a stăpâni abstractizările avansate (monade, efecte) necesare în dezvoltarea sistemelor complexe, oferind un avantaj competitiv în ingineria software modernă.
Despre autor
Michael Pilquist este un contributor principal în ecosistemul Scala, fiind autorul bibliotecii scodec și implicat activ în Typelevel. Runar Bjarnason și Paul Chiusano sunt recunoscuți la nivel global pentru expertiza lor în programare funcțională pură, contribuind semnificativ la popularizarea conceptelor de FP în comunitatea JVM. Împreună, autorii au creat o metodologie de învățare care a influențat zeci de mii de dezvoltatori, transformând Functional Programming in Scala într-o referință standard a domeniului.
Descriere scurtă
In Functional Programming in Scala, Second Edition you will learn how to:
- Recognize and write purely functional code
- Work with errors without using exceptions
- Work with state and concurrency
- Interact with functional structures that define common behaviors
- Write code that performs I/O without sacrificing functional programming
Functional Programming in Scala has helped over 30,000 developers discover the power of functional programming. You’ll soon see why reviewers have called it “mindblowing”! The book smooths the complexity curve of functional programming, making it simple to understand the basics and intuitive to progress to more advanced topics. Concrete examples and exercises show you FP in the real world and reveal how it can improve your everyday coding practices. This second edition comes packed with the latest standards of FP, as well as full code updates to Scala 3, and its new language features.
Foreword by Daniel Spiewak.
About the Technology
Functional code is easy to test, reuse, and parallelize, and it’s practically immune to whole categories of state-related bugs. With its strong functional features, familiar syntax, and seamless interoperability with Java, there’s no better place to start learning functional programming than the flexible Scala language.
About the Book
In Functional Programming with Scala, Second Edition you’ll learn functional programming from first principles. Hands-on exercises and examples make it easy to start thinking and coding functionally. This revised edition contains extensive exercise annotations to help you explore FP in depth, along with steps to build your own functional libraries in Scala. Once the functional lightbulb goes on, you’ll never look at coding the same way again.
What’s Inside
- Recognize and write purely functional code
- Work with errors without using exceptions
- Work with state and concurrency
- Interact with functional structures that define common behaviors
About the Reader
For Java or Scala programmers. No knowledge of functional programming required.
About the Author
Michael Pilquist is the lead maintainer of FS2, a functional streaming library, and contributes to the Typelevel ecosystem. Paul Chiusano and Rúnar Bjarnason are recognized experts in functional programming and authors of the first edition of Functional Programming with Scala.
Table of Contents:
PART 1 - INTRODUCTION TO FUNCTIONAL PROGRAMMING
1 What is functional programming?
2 Getting started with functional programming in Scala
3 Functional data structures
4 Handling errors without exceptions
5 Strictness and laziness
6 Purely functional state
PART 2 - FUNCTIONAL DESIGN AND COMBINATOR LIBRARIES
7 Purely functional parallelism
8 Property-based testing
9 Parser combinators
PART 3 - COMMON STRUCTURES IN FUNCTIONAL DESIGN
10 Monoids
11 Monads
12 Applicative and traversable functors
PART 4 - EFFECTS AND I/O
13 External effects and I/O
14 Local effects and mutable state
15 Stream processing and incremental I/O