Deepen your Haskell knowledge, sharpen your functional programming skills, and just have fun with 25 functional programming puzzles to tie your brain in knots.
Challenge and exercise your functional programming knowledge by tackling these 25 fun, funky, and functional puzzles on Haskell programming topics like lazy evaluation, Haskell syntax, type classes, the type system, and popular libraries. Gain new insight into why Haskell is the way it is. Build mind-bending self-referential and circular data structures, unpick the seams of reality with unsafePerformIO, build enhanced DSLs with QualifiedDo, and roll back time with STM. Review or get introduced to Haskell's common quirks such as the unary minus and pattern guards while mastering newer language features up to GHC 9.12, including linear arrows and Or Patterns.
Employ powerful techniques and recognize common pitfalls as you solve fiendish puzzles across five different topic areas.
Don’t sleep on the lazy evaluation puzzles: they’ll challenge you to predict the behavior of programs that rely on laziness in unexpected ways. Think syntax and language extensions puzzles should be easy? Think again as you deal with the perversity of the unary minus operator, or puzzles based on new extensions like QualifiedDo. Prepare to be perplexed with Type Class puzzles on ad-hoc polymorphism, deriving strategies, and record fields. Want more? Try mixing classic ambiguous type puzzles with advanced new features like linear types. Want to read and debug more esoteric code and exotic language features? Then take on the Libraries puzzles, designed to challenge beginner and advanced readers as you peer into lenses, step into STM, and test the limits of your understanding with the singletons library.
After trying your hand at each puzzle, read through the solution to get more insight into key Haskell features, and use the references to build a reading list to dive deeper into new areas of the language.
"Sinopsis" puede pertenecer a otra edición de este libro.
Rebecca Skinner is the author of Effective Haskell, and a software engineer with more than 10 years of experience in Haskell and functional programming across industries including fintech, security, and data science. She currently volunteers as a member of the Haskell.org committee.
Haskell’s reputation is all about purity, safety, expressiveness, and power. It’s a language admired by many, but loved by few. For those of us who do love it, the joy comes from its flexibility and the ease of expressing our ideas without compromise.
Haskell’s flexibility is one of its greatest strengths: A predictable and composable grammar gives developers the latitude to write code with nuance and style, and language extensions allow Haskell to continually raise the bar for what an industrial-strength language can do. At the same time, Haskell’s flexibility can be an obstacle to fluency. When a language pragma changes the semantic meaning of your code or you first learn that “an expression” really means yes, any expression, your reaction is more likely to be frustration than joy.
This book is here to help. As you work through short, focused puzzles you’ll gain a clear, intuitive understanding of Haskell and start to see it as a cohesive whole. And don’t forget to stop and smell the rose trees.
It’s for you if you are a Haskell expert, are somewhat familiar with Haskell, or are just generally interested in functional programming.
Each puzzle begins with a small self-contained Haskell program intended to run with GHC 9.12 or later using the GHC2024 language version. All required imports and language extensions are included in the puzzles and examples.
When you read the puzzle, try to predict what will happen when you compile and run the program. For example, will it:
The sample code for this book includes standalone files for each puzzle, full example code, unit and property tests, and a complete, reproducible nix environment you can use to build and run the code. It’s available on the Pragmatic Bookshelf website.[1] There, you can download the code, participate in discussions, and post issues if needed.
You can work through the puzzles in any order. They’re grouped thematically, based on which part of the language they focus on. For example, Part I focuses on challenges related to lazy evaluation, while puzzles in Part IV will lean more into reasoning about types.
Puzzles in each part are organized roughly from easiest to hardest. Since difficulty varies depending on your personal experience and background, you might run across an easier puzzle that’s challenging for you- or you might find a difficult puzzle quite easy. If you do find a puzzle that you can’t solve now, feel free to skip ahead and come back to it later.
"Sobre este título" puede pertenecer a otra edición de este libro.
Librería: GreatBookPrices, Columbia, MD, Estados Unidos de America
Condición: New. Nº de ref. del artículo: 51791577-n
Cantidad disponible: Más de 20 disponibles
Librería: PBShop.store US, Wood Dale, IL, Estados Unidos de America
PAP. Condición: New. New Book. Shipped from UK. Established seller since 2000. Nº de ref. del artículo: CX-9798888651902
Cantidad disponible: 15 disponibles
Librería: GreatBookPrices, Columbia, MD, Estados Unidos de America
Condición: As New. Unread book in perfect condition. Nº de ref. del artículo: 51791577
Cantidad disponible: Más de 20 disponibles
Librería: Rarewaves.com USA, London, LONDO, Reino Unido
Paperback. Condición: New. Nº de ref. del artículo: LU-9798888651902
Cantidad disponible: Más de 20 disponibles
Librería: PBShop.store UK, Fairford, GLOS, Reino Unido
PAP. Condición: New. New Book. Shipped from UK. Established seller since 2000. Nº de ref. del artículo: CX-9798888651902
Cantidad disponible: 15 disponibles
Librería: Rarewaves USA, OSWEGO, IL, Estados Unidos de America
Paperback. Condición: New. Nº de ref. del artículo: LU-9798888651902
Cantidad disponible: 6 disponibles
Librería: California Books, Miami, FL, Estados Unidos de America
Condición: New. Nº de ref. del artículo: I-9798888651902
Cantidad disponible: Más de 20 disponibles
Librería: Grand Eagle Retail, Bensenville, IL, Estados Unidos de America
Paperback. Condición: new. Paperback. Deepen your Haskell knowledge, sharpen your functional programming skills, and just have fun with 25 functional programming puzzles to tie your brain in knots.Challenge and exercise your functional programming knowledge by tackling these 20 fun, funky, and functional puzzles on Haskell programming topics such as lazy evaluation, Haskell syntax, type classes, and the type system. Gain new insight into why Haskell is the way it is. Build mind-bending self-referential and circular data structures, unpick the seams of reality with unsafePerformIO, build enhanced DSLs with QualifiedDo, and refactor without fear of the dreaded monomorphism restriction. Review or get introduced to Haskell's common quirks such as the unary minus and pattern guards while mastering newer language features up to GHC 9.12, including linear arrows and Or Patterns.Employ powerful techniques and recognize common pitfalls as you solve fiendish puzzles across five different topic areas.Don't sleep on the lazy evaluation puzzles: they'll challenge you to predict the behavior of programs that rely on laziness in unexpected ways. Think syntax and language extensions puzzles should be easy? Think again as you deal with the perversity of the unary minus operator, or puzzles based on new extensions like QualifiedDo. Prepare to be perplexed with Type Class puzzles on ad-hoc polymorphism, deriving strategies, and record fields. Want more? Try mixing classic ambiguous type puzzles with advanced new features like linear types.After trying your hand at each puzzle, read through the solution to get more insight into key Haskell features, and use the references to build a reading list to dive deeper into new areas of the language. Shipping may be from multiple locations in the US or from the UK, depending on stock availability. Nº de ref. del artículo: 9798888651902
Cantidad disponible: 1 disponibles
Librería: Bluemindbooks, PACHECO, CA, Estados Unidos de America
Condición: New. New Book. Nº de ref. del artículo: NJ-INGR-9798888651902
Cantidad disponible: 1 disponibles
Librería: GreatBookPricesUK, Woodford Green, Reino Unido
Condición: New. Nº de ref. del artículo: 51791577-n
Cantidad disponible: Más de 20 disponibles