Functional programming Books

36 products


  • Functional Programming in Java: Harness the Power

    Pragmatic Bookshelf Functional Programming in Java: Harness the Power

    1 in stock

    Book SynopsisImagine writing Java code that reads like the problem statement, code that's highly expressive, concise, easy to read and modify, and has reduced complexity. With the functional programming capabilities in Java, that's not a fantasy. This book will guide you from the familiar imperative style through the practical aspects of functional programming, using plenty of examples. Apply the techniques you learn to turn highly complex imperative code into elegant and easy-to-understand functional-style code. Updated to the latest version of Java, this edition has four new chapters on error handling, refactoring to functional style, transforming data, and idioms of functional programming. Don't struggle with the limitations of the imperative style; instead learn to combine object-oriented programming with the functional style to reduce the accidental complexity. Harness the functional programming capabilities of Java to create applications where the program reveals its intentions and your team can quickly understand and modify code to align with changing business requirements. Unlock the power of lambda expressions and the Streams API to turn the oft-written spaghetti code into highly concise, expressive, elegant, and maintainable code. See how Streams make the arduous task of parallelizing code as easy as flipping a switch when superior speed is necessary. Apply design patterns built around lambda expressions, safely manage resource allocations, use memoization, and learn to transform data into different forms, all while honoring immutability, and providing thread safety to leverage lazy evaluation for efficiency and parallel execution for performance. Move beyond the basics, explore the idioms for writing functional programs. Learn to think functionally by refactoring legacy code into the functional style. And, if your code runs aground due to failures, learn to properly handle errors the functional way. Don't drown in theory; instead learn the practical functional programming techniques to create superior Java code. What You Need: Java version 8 or newer.

    1 in stock

    £40.84

  • Grokking Functional Programming

    Manning Publications Grokking Functional Programming

    15 in stock

    Book Synopsis"An absolutely wonderful book for someone that has tried and failed to understand functional programming." - William E. Wheeler Grokking Functional Programming is a practical book written especially for object-oriented programmers. It will help you map familiar ideas like objects and composition to FP concepts such as programming with immutable data and higher-order functions. You will learn how to write concurrent programs, how to handle errors and how to design your solutions with modularity and readability in mind. And you'll be pleased to know that we skip the academic baggage of lambda calculus, category theory, and the mathematical foundations of FP in favor of applying functional programming to everyday programming tasks. At the end of the book, you'll be ready to pick a functional language and start writing useful and maintainable software. about the technologyFunctional programming is more than just writing the same old code in Scala, Clojure, or Haskell. To grok FP—to really get it—you need to rewire your brain to see the world differently. We're here to help you flip the switch. Grokking Functional Programming teaches you first to break down problems in a new way so you can approach them from a FP mindset. Following carefully-selected examples with thorough, carefully-paced explanations, you'll immerse yourself in FP concept by concept. Along the way, exercises, checks for understanding, and even the occasional puzzler give you opportunities to think and practice what you're learning. what's insideDesigning with functions and types instead of objectsMultiple learning approaches to help you grok each new conceptA practical programming-first teaching styleProgramming with pure functions & immutable valuesWriting concurrent programs with a functional styleTesting functional programs about the readerThe book assumes that the reader has at least one year of experience developing software using a mainstream object-oriented programming language like Java. While examples use Scala, this is not a Scala book. The concepts will apply to any FP language, and no prior knowledge of Scala or FP is required. about the authorMichał Płachta started using Scala commercially in 2014 and has been an active contributor to the Scala and JVM communities since. He regularly speaks at conferences, runs workshops, and organizes meetups to help others become better at functional programming. You can find his blog at michalplachta.com.Trade Review"An absolutely wonderful book for someone that has tried and failed to understand functional programming." William E. Wheeler "A very practical manuscript." Ubaldo Pescatore "Nice introduction to functional programming. Sure to get Java, Javascript, and C# developers into functional programming." Anjan Bacchu

    15 in stock

    £32.39

  • Domain Modeling Made Functional : Pragmatic

    Pragmatic Bookshelf Domain Modeling Made Functional : Pragmatic

    1 in stock

    Book SynopsisYou want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality. Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming - all the techniques you need will be introduced and explained. Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation---ensuring that the code and design never get out of sync. Encode business rules in the design so that you have "compile-time unit tests," and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented and hexagonal architectures. Finally, create a functional domain model that works with traditional databases, NoSQL, and event stores, and safely expose your domain via a website or API. Solve real problems by focusing on real-world requirements for your software. What You Need: The code in this book is designed to be run interactively on Windows, Mac and Linux. You will need a recent version of F# (4.0 or greater), and the appropriate .NET runtime for your platform. Full installation instructions for all platforms at fsharp.org.

    1 in stock

    £36.57

  • Functional Programming in Scala

    Manning Publications Functional Programming in Scala

    10 in stock

    Book SynopsisDiscover the power that functional programming brings to your Scala code. This international bestseller has been revised with new exercises, annotations, and full coverage of Scala 3. 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 The first edition of Functional Programming in Scala has helped over 30,000 developers discover the power of functional programming. This second edition is fully updated to Scala 3 and the latest standards of FP. Inside, you'll find a serious tutorial for programmers looking to apply functional programming to improve their everyday coding practices. You'll progress from the basics to advanced topics in a logical, concise, and clear progression. Throughout, concrete examples and exercises open up the world of functional programming. about the technology Functional programming (FP) is a style of software development emphasizing functions that don't depend on program state. Functional code is easier to test and reuse, simpler to parallelize, and less prone to bugs than other code. Scala is a popular JVM language that offers strong support for FP. Its familiar syntax and transparent interoperability with Java make Scala a great place to start learning FP. about the book Functional Programming in Scala, Second Edition teaches you functional programming from first principles using the powerful Scala language. You'll develop the unique skills you need to start thinking functionally through hands-on exercises and coding challenges. New to the revised second edition, each exercise comes with extensive annotations to help you understand functional programming in-depth. You'll even learn how to build your own Scala functional library that's perfectly adapted to your needs. You'll soon be writing Scala code that's easier to read, easier to reuse, better for concurrency, and less prone to bugs and errors. RETAIL SELLING POINTS Recognize and write purely functional code Work with errors without using exceptions Work with state and concurrency Interact with functional structures that define common behaviours Write code that performs I/O without sacrificing functional programming AUDIENCE For programmers experienced in Java or Scala. No prior knowledge of functional programming required.Table of Contentstable of contents detailed TOC PART 1: INTRODUCTION TO FUNCTIONAL PROGRAMMING READ IN LIVEBOOK 1WHAT IS FUNCTIONAL PROGRAMMING? READ IN LIVEBOOK 2GETTING STARTED WITH FUNCTIONAL PROGRAMMING IN SCALA READ IN LIVEBOOK 3FUNCTIONAL DATA STRUCTURES READ IN LIVEBOOK 4HANDLING ERRORS WITHOUT EXCEPTIONS READ IN LIVEBOOK 5STRICTNESS AND LAZINESS READ IN LIVEBOOK 6PURELY FUNCTIONAL STATE PART 2: FUNCTIONAL DESIGN AND COMBINATOR LIBRARIES READ IN LIVEBOOK 7PURELY FUNCTIONAL PARALLELISM READ IN LIVEBOOK 8PROPERTY-BASED TESTING READ IN LIVEBOOK 9PARSER COMBINATORS PART 3: COMMON STRUCTURES IN FUNCTIONAL DESIGN READ IN LIVEBOOK 10MONOIDS READ IN LIVEBOOK 11MONADS READ IN LIVEBOOK 12APPLICATIVE 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

    10 in stock

    £45.99

  • Parallel and Concurrent Programming in Haskell

    O'Reilly Media Parallel and Concurrent Programming in Haskell

    Out of stock

    Book SynopsisIf you have a working knowledge of Haskell, this book shows you how to use the language's many APIs and frameworks for writing parallel and concurrent programs. You'll learn how parallelism exploits multicore processors to speed up computation-heavy programs and how concurrency enables you to write programs with threads for multiple interactions.

    Out of stock

    £26.99

  • Functional Programming in Kotlin

    Manning Publications Functional Programming in Kotlin

    15 in stock

    Book SynopsisFunctional Programming in Kotlin is a reworked version of the bestselling Functional Programming in Scala, with all code samples, instructions, and exercises translated into the powerful Kotlin language. In this authoritative guide, you’ll take on the challenge of learning functional programming from first principles, and start writing Kotlin code that’s easier to read, easier to reuse, better for concurrency, and less prone to bugs and errors. about the technologyKotlin is a new JVM language designed to interoperate with Java and offer an improved developer experience for creating new applications. It’s already a top choice for writing web services, and Android apps. Although it preserves Java’s OO roots, Kotlin really shines when you adopt a functional programming mindset. By learning the core principles and practices of functional programming outlined in this book, you’ll start writing code that’s easier to read, easier to test and reuse, better for concurrency, and less prone to bugs. about the book Functional Programming in Kotlin is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. Based on the bestselling Functional Programming in Scala, this book guides intermediate Java and Kotlin programmers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you'll find concrete examples and exercises that open up the world of functional programming. The book will deliver practical mastery of FP using Kotlin and a valuable perspective on program design that you can apply to other languages. what's inside Functional programming techniques for real-world applications Write combinator libraries Identify common structures and idioms in functional design Code for simplicity, modularity, and fewer bugs about the readerFor intermediate Kotlin and Java developers. No experience with functional programming is required. about the author Marco Vermeulen has almost two decades of programming experience on the JVM, with much of that time spent on functional programming using Scala and Kotlin. Rúnar Bjarnason and Paul Chiusano are the authors of Functional Programming in Scala, on which this book is based. They are internationally-recognized experts in functional programming and the Scala programming language.

    15 in stock

    £35.99

  • Learn Physics With Functional Programming: A

    No Starch Press,US Learn Physics With Functional Programming: A

    2 in stock

    Book SynopsisThis book teaches you to solve physics problems using the functional programming paradigm. Ideal for first-time programmers and science aficionados alike, it introduces the Haskell programming language and encourages the writing of beautiful code to match the elegant ideas of theoretical physics. Haskell's powerful system of types is capable of encoding important mathematical structures like vectors, derivatives, integrals, scalar fields, and differential equations.Table of ContentsAcknowledgments IntroductionPart I: A Haskell Primer for PhysicistsChapter 1: Calculating with HaskellChapter 2: Writing Basic FunctionsChapter 3: Types and EntitiesChapter 4: Describing MotionChapter 5: Working with ListsChapter 6: Higher-Order FunctionsChapter 7: Graphing FunctionsChapter 8: Type ClassesChapter 9: Tuples and Type ConstructorsChapter 10: Describing Motion in Three DimensionsChapter 11: Creating GraphsChapter 12: Creating Stand-Alone ProgramsChapter 13: Creating 2D and 3D Animations Part II: Expressing Newtonian Mechanics and Solving ProblemsChapter 14: Newton’s Second Law and Differential EquationsChapter 15: Mechanics in One DimensionChapter 16: Mechanics in Three DimensionsChapter 17: Satellite, Projectile, and Proton MotionChapter 18: A Very Short Primer on Relativity Chapter 19: Interacting ParticlesChapter 20: Springs, Billiard Balls, and a Guitar StringPart III: Expressing Electromagnetic Theory and Solving ProblemsChapter 21: ElectricityChapter 22: Coordinate Systems and FieldsChapter 23: Curves, Surfaces, and VolumesChapter 24: Electric ChargeChapter 25: Electric FieldChapter 26: Electric CurrentChapter 27: Magnetic FieldChapter 28: The Lorentz Force LawChapter 29: The Maxwell EquationsAppendix: Installing HaskellBibliographyIndex

    2 in stock

    £35.99

  • Programming for Electrical Engineers

    Elsevier Science Publishing Co Inc Programming for Electrical Engineers

    Out of stock

    Book SynopsisTable of Contents1. Introduction to MATLAB 2. MATLAB as a Calculator 3. Plotting with MATLAB 4. MATLAB Programming 5. Programming II: Looping 6. Spice

    Out of stock

    £48.71

  • Scala for the Impatient

    Pearson Education (US) Scala for the Impatient

    Out of stock

    Book SynopsisCay S. Horstmann is principal author of Core Java, Volumes I & II, Tenth Edition (Prentice Hall), as well as a dozen other books for professional programmers and computer science students. He is a professor of computer science at San Jose State University and a Java Champion.Table of ContentsForeword to the First Edition xvii Preface xix About the Author xxi Chapter 1: The Basics 1 1.1 The Scala Interpreter 1 1.2 Declaring Values and Variables 4 1.3 Commonly Used Types 5 1.4 Arithmetic and Operator Overloading 6 1.5 More about Calling Methods 8 1.6 The apply Method 9 1.7 Scaladoc 10 Exercises 15 Chapter 2: Control Structures and Functions 17 2.1 Conditional Expressions 18 2.2 Statement Termination 19 2.3 Block Expressions and Assignments 20 2.4 Input and Output 21 2.5 Loops 22 2.6 Advanced for Loops 24 2.7 Functions 25 2.8 Default and Named Arguments 26 2.9 Variable Arguments 26 2.10 Procedures 28 2.11 Lazy Values 28 2.12 Exceptions 29 Exercises 31 Chapter 3: Working with Arrays 35 3.1 Fixed-Length Arrays 35 3.2 Variable-Length Arrays: Array Buffers 36 3.3 Traversing Arrays and Array Buffers 37 3.4 Transforming Arrays 38 3.5 Common Algorithms 40 3.6 Deciphering Scaladoc 41 3.7 Multidimensional Arrays 42 3.8 Interoperating with Java 43 Exercises 44 Chapter 4: Maps and Tuples 47 4.1 Constructing a Map 48 4.2 Accessing Map Values 48 4.3 Updating Map Values 49 4.4 Iterating over Maps 50 4.5 Sorted Maps 50 4.6 Interoperating with Java 50 4.7 Tuples 51 4.8 Zipping 52 Exercises 52 Chapter 5: Classes 55 5.1 Simple Classes and Parameterless Methods 55 5.2 Properties with Getters and Setters 56 5.3 Properties with Only Getters 59 5.4 Object-Private Fields 60 5.5 Bean Properties 61 5.6 Auxiliary Constructors 62 5.7 The Primary Constructor 63 5.8 Nested Classes 66 Exercises 68 Chapter 6: Objects 71 6.1 Singletons 71 6.2 Companion Objects 72 6.3 Objects Extending a Class or Trait 73 6.4 The apply Method 73 6.5 Application Objects 74 6.6 Enumerations 75 Exercises 77 Chapter 7: Packages and Imports 79 7.1 Packages 80 7.2 Scope Rules 81 7.3 Chained Package Clauses 83 7.4 Top-of-File Notation 83 7.5 Package Objects 83 7.6 Package Visibility 84 7.7 Imports 85 7.8 Imports Can Be Anywhere 85 7.9 Renaming and Hiding Members 86 7.10 Implicit Imports 86 Exercises 87 Chapter 8: Inheritance 91 8.1 Extending a Class 91 8.2 Overriding Methods 92 8.3 Type Checks and Casts 93 8.4 Protected Fields and Methods 94 8.5 Superclass Construction 94 8.6 Overriding Fields 95 8.7 Anonymous Subclasses 97 8.8 Abstract Classes 97 8.9 Abstract Fields 97 8.10 Construction Order and Early Definitions 98 8.11 The Scala Inheritance Hierarchy 100 8.12 Object Equality 102 8.13 Value Classes 103 Exercises 105 Chapter 9: Files and Regular Expressions 109 9.1 Reading Lines 109 9.2 Reading Characters 110 9.3 Reading Tokens and Numbers 111 9.4 Reading from URLs and Other Sources 111 9.5 Reading Binary Files 112 9.6 Writing Text Files 112 9.7 Visiting Directories 112 9.8 Serialization 113 9.9 Process Control 114 9.10 Regular Expressions 116 9.11 Regular Expression Groups 117 Exercises 118 Chapter 10: Traits 121 10.1 Why No Multiple Inheritance? 121 10.2 Traits as Interfaces 123 10.3 Traits with Concrete Implementations 124 10.4 Objects with Traits 125 10.5 Layered Traits 125 10.6 Overriding Abstract Methods in Traits 127 10.7 Traits for Rich Interfaces 127 10.8 Concrete Fields in Traits 128 10.9 Abstract Fields in Traits 130 10.10 Trait Construction Order 130 10.11 Initializing Trait Fields 132 10.12 Traits Extending Classes 133 10.13 Self Types 134 10.14 What Happens under the Hood 135 Exercises 137 Chapter 11: Operators 141 11.1 Identifiers 142 11.2 Infix Operators 143 11.3 Unary Operators 143 11.4 Assignment Operators 144 11.5 Precedence 144 11.6 Associativity 145 11.7 The apply and update Methods 146 11.8 Extractors 147 11.9 Extractors with One or No Arguments 149 11.10 The unapplySeq Method 149 11.11 Dynamic Invocation 150 Exercises 153 Chapter 12: Higher-Order Functions 157 12.1 Functions as Values 157 12.2 Anonymous Functions 159 12.3 Functions with Function Parameters 160 12.4 Parameter Inference 160 12.5 Useful Higher-Order Functions 161 12.6 Closures 162 12.7 SAM Conversions 163 12.8 Currying 164 12.9 Control Abstractions 166 12.10 The return Expression 167 Exercises 168 Chapter 13: Collections 171 13.1 The Main Collections Traits 172 13.2 Mutable and Immutable Collections 173 13.3 Sequences 174 13.4 Lists 175 13.5 Sets 177 13.6 Operators for Adding or Removing Elements 178 13.7 Common Methods 180 13.8 Mapping a Function 182 13.9 Reducing, Folding, and Scanning 184 13.10 Zipping 187 13.11 Iterators 188 13.12 Streams 189 13.13 Lazy Views 190 13.14 Interoperability with Java Collections 191 13.15 Parallel Collections 193 Exercises 194 Chapter 14: Pattern Matching and Case Classes 197 14.1 A Better Switch 198 14.2 Guards 199 14.3 Variables in Patterns 199 14.4 Type Patterns 200 14.5 Matching Arrays, Lists, and Tuples 201 14.6 Extractors 202 14.7 Patterns in Variable Declarations 203 14.8 Patterns in for Expressions 204 14.9 Case Classes 205 14.10 The copy Method and Named Parameters 205 14.11 Infix Notation in case Clauses 206 14.12 Matching Nested Structures 207 14.13 Are Case Classes Evil? 208 14.14 Sealed Classes 209 14.15 Simulating Enumerations 209 14.16 The Option Type 210 14.17 Partial Functions 211 Exercises 212 Chapter 15: Annotations 215 15.1 What Are Annotations? 216 15.2 What Can Be Annotated? 216 15.3 Annotation Arguments 217 15.4 Annotation Implementations 218 15.5 Annotations for Java Features 219 15.6 Annotations for Optimizations 222 15.7 Annotations for Errors and Warnings 226 Exercises 227 Chapter 16: XML Processing 229 16.1 XML Literals 230 16.2 XML Nodes 230 16.3 Element Attributes 232 16.4 Embedded Expressions 233 16.5 Expressions in Attributes 234 16.6 Uncommon Node Types 235 16.7 XPath-like Expressions 235 16.8 Pattern Matching 237 16.9 Modifying Elements and Attributes 238 16.10 Transforming XML 239 16.11 Loading and Saving 239 16.12 Namespaces 242 Exercises 243 Chapter 17: Futures 247 17.1 Running Tasks in the Future 248 17.2 Waiting for Results 250 17.3 The Try Class 251 17.4 Callbacks 251 17.5 Composing Future Tasks 252 17.6 Other Future Transformations 255 17.7 Methods in the Future Object 256 17.8 Promises 258 17.9 Execution Contexts 260 Exercises 260 Chapter 18: Type Parameters 265 18.1 Generic Classes 266 18.2 Generic Functions 266 18.3 Bounds for Type Variables 266 18.4 View Bounds 268 18.5 Context Bounds 268 18.6 The ClassTag Context Bound 269 18.7 Multiple Bounds 269 18.8 Type Constraints 269 18.9 Variance 271 18.10 Co- and Contravariant Positions 272 18.11 Objects Can’t Be Generic 274 18.12 Wildcards 275 Exercises 275 Chapter 19: Advanced Types 279 19.1 Singleton Types 280 19.2 Type Projections 281 19.3 Paths 282 19.4 Type Aliases 283 19.5 Structural Types 283 19.6 Compound Types 284 19.7 Infix Types 285 19.8 Existential Types 286 19.9 The Scala Type System 287 19.10 Self Types 288 19.11 Dependency Injection 289 19.12 Abstract Types 291 19.13 Family Polymorphism 293 19.14 Higher-Kinded Types 296 Exercises 299 Chapter 20: Parsing 303 20.1 Grammars 304 20.2 Combining Parser Operations 305 20.3 Transforming Parser Results 307 20.4 Discarding Tokens 308 20.5 Generating Parse Trees 309 20.6 Avoiding Left Recursion 310 20.7 More Combinators 311 20.8 Avoiding Backtracking 314 20.9 Packrat Parsers 314 20.10 What Exactly Are Parsers? 315 20.11 Regex Parsers 316 20.12 Token-Based Parsers 317 20.13 Error Handling 319 Exercises 320 Chapter 21: Implicits 323 21.1 Implicit Conversions 324 21.2 Using Implicits for Enriching Existing Classes 324 21.3 Importing Implicits 325 21.4 Rules for Implicit Conversions 326 21.5 Implicit Parameters 328 21.6 Implicit Conversions with Implicit Parameters 329 21.7 Context Bounds 329 21.8 Type Classes 331 21.9 Evidence 333 21.10 The @implicitNotFound Annotation 334 21.11 CanBuildFrom Demystified 334 Exercises 336 Index 338

    Out of stock

    £39.09

  • More OCaml Algorithms Methods and Diversions

    15 in stock

    £35.83

  • Thinking Functionally with Haskell

    Cambridge University Press Thinking Functionally with Haskell

    15 in stock

    Richard Bird is famed for the clarity and rigour of his writing. His new textbook, which introduces functional programming to students, emphasises fundamental techniques for reasoning mathematically about functional programs. By studying the underlying equational laws, the book enables students to apply calculational reasoning to their programs, both to understand their properties and to make them more efficient. The book has been designed to fit a first- or second-year undergraduate course and is a thorough overhaul and replacement of his earlier textbooks. It features case studies in Sudoku and pretty-printing, and over 100 carefully selected exercises with solutions. This engaging text will be welcomed by students and teachers alike.

    15 in stock

    £44.99

  • Functional Thinking

    O'Reilly Media Functional Thinking

    2 in stock

    Book SynopsisIf you want to take advantage of functional programming features in Java and other languages, this in-depth guide takes you beyond syntax and demonstrates how you need to think in a new way.

    2 in stock

    £23.99

  • Clojure Cookbook

    O'Reilly Media Clojure Cookbook

    1 in stock

    Book SynopsisWith more than 150 detailed recipes, this cookbook shows experienced Clojure developers how to solve a variety of programming tasks with this JVM language. The solutions cover everything from building dynamic websites and working with databases to network communication, cloud computing, and advanced testing strategies.

    1 in stock

    £26.99

  • Becoming Functional

    O'Reilly Media Becoming Functional

    1 in stock

    Book SynopsisBecoming Functional will help you through the sometimes alien world of functional programming. Many functional programming books begin by focusing on the more difficult concepts such as recursion and immutability. This book lets you dive right in to functional programming by teaching the most useful implementation concepts first.

    1 in stock

    £19.19

  • Clojure Programming

    O'Reilly Media Clojure Programming

    Out of stock

    Book SynopsisWith this book, you get a solid grounding in Clojure fundamentals, based on the environments you already familiar with-whether you're working with data, concurrency, application interfaces, or other challenges. Discover how this JVM language can make your work simpler and help you be more productive.

    Out of stock

    £29.99

  • Introducing ReScript

    APress Introducing ReScript

    1 in stock

    Book SynopsisThis book serves as a succinct guide on ReScript, a functional language for building web applications. Using examples of ReScript language features along with explanations of fundamental concepts in functional programming, this book will show web developers with a background in JavaScript how to effectively use ReScript to its full potential. In Introducing ReScript, you'll learn how to use features in ReScript that JavaScript lacks, such as type inference, null-safety, algebraic data types, pattern matching, and more. Along the way, you'll pick up functional programming concepts like immutability and higher-order functions. You'll also gain a sense of how ReScript works under the hood and how to leverage interoperability between ReScript and JavaScript. Whether you're a web developer interested in dabbling with functional programming or you just want to learn how to write safer and cleaner code for web applications, this book is a great way for you to get started with ReScript. Table of ContentsChapter 1, IntroChapter Goal: Learn what functional programming is, and the background of the ReScript language● What is ReScript?● Why should you learn ReScript?● What is functional programming?● Why should you learn functional programming?Chapter 2, BasicsChapter Goal: Learn the basic features of ReScript, like expressions and operators- Development environment setup- Hello, World in ReScript- Expressions- Operators- If expressions- Let expressions- Printing and debuggingChapter 3, FunctionsChapter Goal: learn how functions work in ReScript- Defining a function- Applying a function- Polymorphic functions- Anonymous functionsChapter 4, Lists and ArraysChapter Goal: learn the data structures for ordered data in ReScript, learn about immutable data structures- Building a list- Accessing a list- Mutating a list- Arrays and mutability- IterationChapter 5, Records and ObjectsChapter Goal: learn the ways to represent composite data types in ReScript- Records- ObjectsChapter 6, Pattern Matching and DestructuringChapter Goal: learn one of ReScript's most powerful features and how to work with the shape of your data- Pattern matching/switch- Destructuring with let- Destructuring in functionsChapter 7, Algebraic Data TypesChapter Goal: learn how represent complex data in ReScript's type system- Variants- Polymorphic Variants- Options- TuplesChapter 8, Higher Order ProgrammingChapter Goal:- Higher order functions- Map- Filter- Reduce- Generalizing to other data structures- Piping- CurryingChapter 9, ModulesChapter Goal: Introduce modules in ReScript, and how they can be used for higher order programming- What are modules- Scope/visibility- Signature- Import/Export- FunctorsChapter 10, Using ReScript in ProductionChapter Goal: learn about ReScript's interoperability with JavaScript- Calling ReScript from JavaScript- Calling JavaScript from ReScript- Embedding JavaScript in ReScript- Working with DOM- Working with JSON- Runtime representation

    1 in stock

    £22.49

  • Optics Using MATLAB

    SPIE Press Optics Using MATLAB

    1 in stock

    Book SynopsisOptics Using MATLAB® provides a functional overview of the development of MATLAB code that can be used to enhance and increase one’s understanding of optics though the use of visualization tools. The book ties a variety of optical topics to MATLAB programming activities and can act as a supplement to other textbooks or can stand alone. Part I focuses on a wide range of basic programming fundamentals using MATLAB and includes such topics as curve fitting, image processing, and file storage. Part II provides a review of selected topics in optics and demonstrates how these can be explored using MATLAB scripts. Part III discusses how to use MATLAB to improve the usability of custom programs through graphical user interfaces and incorporation of other programming languages. Those who need flexibility and special calculations in their optical design or optical engineering work will find value in the book’s explanations and examples of user-programmable software.Table of Contents Preface Acronyms and Abbreviations I MATLAB® Overview 1 Introduction to MATLAB 1.1 Getting Started with MATLAB 1.2 Anatomy of a Program 1.3 MATLAB Basic Functions and Operators 1.4 Simple Calculations using MATLAB 1.5 Vectorization and Matrix Indexing 1.6 MATLAB Scripts 1.7 MATLAB Functions 1.8 Practice Problems References 2 Plotting Mathematical Functions 2.1 Mathematical Functions 2.2 Visualization Functions: plot() 2.3 Visualization Functions: histogram() 2.4 Visualization Functions: 3D plotting 2.5 Visualization Functions: contour() and quiver() 2.6 Visualization Functions: images 2.7 Practice Problems References 3 Linear Amplifiers 3.1 Polynomial Synthesis and Curve Fitting 3.2 Polynomial Curve Fitting 3.3 Signal-to-Noise Ratio 3.4 Best Fit through the Data 3.5 Best Fit to the Data 3.6 Practice Problems References 4 Data and Data Files 4.1 Text versus Binary 4.2 Writing Data Files 4.3 Generating Data to be Saved 4.4 Reading and Using Data Files 4.5 Binary MAT Files 4.6 Binary Image Files 4.7 Practice Problem References 5 Images and Image Processing 5.1 Image Files 5.2 Image Commands 5.3 Image Size and Superpixels 5.4 Color Models and Conversions 5.5 Spatial Filtering 5.6 Practice Problems References II OPTICS APPLICATIONS 6 Ray Optics and Glass Equations 6.1 Lensmaker's Equation and Spot Size 6.2 Paraxial Region and Snell's Law 6.3 Matrix Approach to Ray Tracing 6.4 Ray Tracing through Multiple Elements 6.5 Glass Equations 6.6 Practice Problems References 7 Spectrometers 7.1 Dispersion in a Material 7.2 Prisms 7.3 Gratings 7.4 Blazed Gratings 7.5 Grisms 7.6 Spectrometers and Monochrometers 7.7 Practice Problems References 8 Modulation Transfer Function and Contrast 8.1 Image Quality 8.2 Spatial Frequency and Modulation Transfer Function 8.3 Point Spread Function 8.4 MTF Measurement 8.5 Effect of Annular Optics on MTF 8.6 Image Transformation 8.7 Practice Problems References 9 Diffraction and Interference 9.1 Interference 9.2 Coherence 9.3 Diffraction 9.4 Young's Double-Slit Experiment 9.5 Michelson Stellar Interferometer 9.6 Mach–Zhender Interferometer 9.7 Practice Problems References 10 Zernike Polynomials and Wavefronts 10.1 Wavefront Sensing in Adaptive Optics 10.2 Wavefront Aberrations 10.3 Zernike Polynomials 10.4 Wavefront Construction 10.5 Practice Problems References Further Reading 11 Polarizations 11.1 Polarized Light 11.2 Double Refraction 11.3 The Jones Calculus: Polarizers 11.4 The Jones Calculus: Phase Retarders 11.5 The Mueller Calculus 11.6 Jones-to-Mueller Transformation 11.7 Practice Problems References 12 Optical Interference Filters 12.1 Transfer Matrix for Thin Films 12.2 Antireflection Systems 12.3 High-Reflectance Systems 12.4 Bandpass Filters 12.5 Composite Filters 12.6 Index of Refraction Calculation 12.7 Practice Problems References 13 Metals and Complex Index of Refraction 13.1 Physical Vapor Deposition 13.2 Index of Refraction in Absorbing Media 13.3 Reflectivity of Metal Films 13.4 Absorption and Transmission in Metal Films 13.5 Impedance Matching 13.6 Practice Problems References III More with MATLAB 14 User Interfaces 14.1 Simple User Interfaces 14.2 Built-In Interfaces 14.3 Graphical User Interfaces: GUIDE 14.4 Applications: App Designer 14.5 Zernike GUI Project 14.6 Practice Problems References 15 Completing and Packaging Programs 15.1 P-Code 15.2 Publishing 15.3 Version Control 15.4 Interfacing with other Programming Languages 15.5 Object-Oriented Programming and More References Bibliography Index

    1 in stock

    £52.80

  • Engineering Computations and Modeling in

    American Institute of Aeronautics & Astronautics Engineering Computations and Modeling in

    Out of stock

    Book SynopsisEngineering Computations and Modeling in MATLAB(R)/Simulink(R) provides a broad overview of The MathWorks' MATLAB(R)/Simulink(R)/GUIDE development and modeling environment. This textbook shows how to use these software tools effectively in a variety of engineering applications, including modeling real-world dynamic systems. Concepts Discussed: Major concepts of MATLAB(R), Symbolic Math ToolboxA', Simulink(R), and GUIDE * Development of effective foolproof M-file scripts and functions * Use of the 2D and 3D plotting functions and handle graphics * Creation of interactive user interfaces and animations * Presentation of numerical methods, coded in MATLAB(R) functions * Accuracy of digital computations Special Features: * Numerous examples * Derivation of fundamental formulas using symbolic math computations * Dynamic systems modeling in MATLAB(R) and Simulink(R) * Development of user-friendly standalone GUIs * Introduction of aerospace engineering tools This book is used as a textbook by undergraduate and graduate students taking introductory and advanced courses in applied programming, and also as a reference for working professionals using MATLAB(R)/Simulink(R).

    Out of stock

    £81.00

  • Functional Programming in Scala

    Manning Publications Functional Programming in Scala

    15 in stock

    Book SynopsisDESCRIPTION Functional programming (FP) is a programming style emphasizing functions that return consistent and predictable results regardless of a program's state. As a result, functional code is easier to test and reuse, simpler to parallelize, and less prone to bugs. Scala is an emerging JVM language that offers strong support for FP. Its familiar syntax and transparent interoperability with existing Java libraries make Scala a great place to start learning FP. Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, they’ll find concrete examples and exercises that open up the world of functional programming. RETAIL SELLING POINTS Covers the practical benefits of Functional Programming Offers concrete examples and exercises Logically progresses from basic techniques to advance topics AUDIENCE No prior experience with FP or Scala is required. Perfect for programmers familiar with FP in other languages wishing to apply their knowledge in Scala. ABOUT THE TECHNOLOGY Functional programming (FP) is a programming style emphasizing functions that return consistent and predictable results regardless of a program's state. Scala is an emerging JVM language that offers strong support for FP.

    15 in stock

    £32.39

  • Spring in Action

    Manning Publications Spring in Action

    10 in stock

    Book Synopsis  DESCRIPTION Spring in Action, Fourth Edition continues the practical, hands-on style of the previous bestselling editions. Author Craig Walls has a special knack for crisp and entertaining examples that zoom in on the features and techniques really needed. The Spring framework is required knowledge for Java developers, and this edition brings readers up to speed with Spring 3.1 and then highlights some of the new Spring 3.2 features such as asynchronous Spring MVC Controllers. It also covers testing support for Spring MVC controllers and RestTemplate-based clients which enables a richer form of testing for controllers and clients without having to fire up a server or hitting an actual REST API—in other words no-network involved. RETAIL SELLING POINTS Written by esteemed Spring expert Offers practical solutions to real-world problems Contains concise, easy to follow examples AUDIENCE Written for Java developers and software architects. ABOUT THE TECHNOLOGY Applications are composed of several components. If these components are tightly coupled (that is, if they have too much knowledge of each other), then the application can be difficult to maintain, enhance, and test. The Spring framework promotes a technique known as dependency injection,

    10 in stock

    £46.72

  • SBT in Action:The simple Scala built tool

    Manning Publications SBT in Action:The simple Scala built tool

    10 in stock

    Book SynopsisDESCRIPTION Simple Build Tool: sbt. The idea of a high quality build tool for Scala is indeed simple, but sbt itself is richly-featured and powerful. Documentation for sbt is sparse, and the blogs, tutorials, and other bits scattered across the web demand a comprehensive, accurate picture of how to build Scala projects effectively and efficiently. This book will help transform ugly, complex builds into a streamlined, automated, and repeatable process. SBT in Action is first and foremost a tutorial about effectively building Scala projects. It introduces the sbt tool with a simple project that establishes the fundamentals of running commands and tasks. Next, it shows how to use the peripheral libraries in sbt to make common tasks simpler. This includes an I/O library to deal with files and how to parse user input in a meaningful fashion. Finally, it covers how to deploy software effectively. RETAIL SELLING POINTS Comprehensive and detailed guide Fills in the gaps of information on sbt Shows how to tame unwieldy complex builds AUDIENCE This book assumes readers are comfortable reading and writing Scala code. No experience with sbt required. ABOUT THE TECHNOLOGY Known as the de-facto Scala build tool, sbt is used to build other pieces of software. It uses Scala as its lingua franca, which means that all settings and files are typesafe by default, providing a level of safety in builds that is uncommon.

    10 in stock

    £39.50

  • R in Action

    Manning Publications R in Action

    15 in stock

    Book Synopsis   DESCRIPTION R is a powerful language for statistical computing and graphics that can handle virtually any data-crunching task. It runs on all important platforms and provides thousands of useful specialized modules and utilities. This makes R a great way to get meaningful information from mountains of raw data. R in Action, Second Edition is language tutorial focused on practical problems. Written by a research methodologist, it takes a direct and modular approach to quickly give readers the information they need to produce useful results. Focusing on realistic data analyses and a comprehensive integration of graphics, it follows the steps that real data analysts use to acquire their data, get it into shape, analyze it, and produce meaningful results that they can provide to clients. RETAIL SELLING POINTS Step-by-step guide to practical data analysis Gives quick access to the R language Written by seasoned researcher Uses over 130 graphics AUDIENCE This book is for social scientists, medical and pharmaceutical researchers, professors and students in quantitative fields, data analysts, data mining specialists, and statistical programmers who have a sense of what they want to do, but not how to do it in R. ABOUT THE TECHNOLOGY R is a powerful language for statistical computing and graphics that can handle virtually any data-crunching task. It runs on all important platforms and provides thousands of useful specialized modules and

    15 in stock

    £43.19

  • Learn Quantum Computing with Python and Q#: A

    Manning Publications Learn Quantum Computing with Python and Q#: A

    10 in stock

    Book SynopsisLearn Quantum Computing with Python and Q# demystifies quantum computing. Using Python and the new quantum programming language Q#, you’ll learn QC fundamentals as you apply quantum programming techniques to real-world examples including cryptography and chemical analysis. Learn Quantum Computing with Python and Q# builds your understanding of quantum computers, using Microsoft’s Quantum Development Kit to abstract away the mathematical complexities. You’ll learn QC basics as you create your own quantum simulator in Python, then move on to using the QDK and the new Q# language for writing and running algorithms very different to those found in classical computing. Key Features · The underlying mechanics of how quantum computers work · How to simulate qubits in Python · Q# and the Microsoft Quantum Developer Kit · How to apply quantum algorithms to real-world examples For readers with basic programming skills and some experience of linear algebra, calculus and complex numbers. About the technology Quantum computing is the next step in computing power and scalability, with the potential to impact everything from data science to information security. Using qubits, the fundamental unit of quantum information, quantum computers can solve problems beyond the scale of classical computing. Software packages like Microsoft's Quantum Development Kit and the Q# language are now emerging to give programmers a quick path to exploring quantum development for the first time. Christopher Granade completed his PhD in physics (quantum information) at the University of Waterloo’s Institute for Quantum Computing, and now works in the Quantum Architectures and Computation (QuArC) group at Microsoft. He works in developing the standard libraries for Q# and is an expert in the statistical characterization of quantum devices from classical data. Previously, Christopher helped Scott Aaronson prepare lectures into his recent book, Quantum Computing Since Democritus. Sarah Kaiser completed her PhD in physics (quantum information) at the University of Waterloo’s Institute for Quantum Computing. She has spent much of her career developing new quantum hardware in the lab, from satellites to hacking quantum cryptography hardware. Communicating what is so exciting about quantum is her passion, and she loves finding new demos and tools to help enable the quantum community to grow. When not at the keyboard, she loves kayaking and writing books about engineering for kids.

    10 in stock

    £43.19

  • Functional Programming in C#

    Manning Publications Functional Programming in C#

    7 in stock

    Book SynopsisFunctional Programming in C#, Second Edition is fully revised to cover new functional-inspired features in the most recent releases of C#, including tuples, async streams, pattern matching, and records. Each chapter is packed with awesome perspectives and epiphany moments. Functional Programming in C#, Second Edition teaches you to apply functional thinking to real-world problems using the C# language. You'll discover the principles and language features of functional programming, explore C#'s functional language features, and learn how to use them to write code that is concise, elegant, and robust. Through numerous real-world examples, you'll also learn the power of function composition, data flow programming, immutable data structures, and monadic composition with LINQ. Functional programming changes the way you think about code by concentrating your attention on generic, composable behaviours instead of more complex objects. It gives developers the power to get more done with less code, enables super-safe concurrency that's perfect for multicore processors, and makes your code easy to maintain long-term. C#'s flexibility lets you benefit fully from the application of functional techniques.Trade Review“A great book on becoming a master of Functional Programming.6” Najeeb Arif “You have to read this—it'll give you a whole new perspective on things.” Jedidja Bourgeois “This is an extremely good presentation of functional concepts to C# developers.” David Paccoud

    7 in stock

    £43.12

  • Functional Reactive Programming

    Manning Publications Functional Reactive Programming

    10 in stock

    Book SynopsisDESCRIPTION Most software applications must handle user or system-generated events. The most widely-accepted event handling model is the Observer pattern, in which an object "listens" for changes in the application's state and then reacts by executing a unit of code—the problems is that this approach is prone to bugs. Functional Reactive Programming (FRP) is an alternative to the Observer pattern. It’s designed to deal with events as a stream of values over time rather than as a series of unique responses to discrete changes in state, keeping logic tidy and eliminating the bugs that plague event handling code with no loss of expressiveness. FRP is useful anywhere the Observer pattern is common, including user interfaces, video games, networking, and industrial applications. Functional Reactive Programming teaches the concepts and applications of FRP. It begins with a careful walk-through of the FRP core operations and introduces the concepts and techniques needed to use FRP in any language. Following easy-to-understand examples, readers will learn how to use FRP in greenfield applications and how to refactor existing applications. Along the way, the book introduces the basics of functional programming in a just-in-time style, so readers never learn anything before they need to use it. By the end of the book, readers will be able to use FRP to spend more time adding features and less time fixing problems. KEY SELLING POINTS Step by step guide to developing FRP applications Think differently about data and events Spend less time fixing problems and more time adding features AUDIENCE This book presents examples in Java, C++, and JavaScript using the Sodium, Flapjax, and BaconJS libraries. No prior experience with functional programming is required. ABOUT THE TECHNOLOGY Reactive programming is a broad concept, where programs are event-based and viewed as a data flow. Functional Reactive Programming is a specific type of reactive programming that improves the quality of interactive applications, allowing developers to spend more time adding features and less time fixing problems.

    10 in stock

    £39.99

  • Julia for Data Analysis

    Manning Publications Julia for Data Analysis

    15 in stock

    Book SynopsisMaster core data analysis skills using Julia. Julia for Data Analysis is a fascinating, hands-on projects guide you through time series data, predictive models, popularity ranking, and more. With this book, you will learn how to: Read and write data in various formats Work with tabular data, including subsetting, grouping, and transforming Visualise your data using plots Perform statistical analysis Build predictive models Create complex data processing pipelines Julia was designed for the unique needs of data scientists: it's expressive and easy-to-use whilst also delivering super fast code execution. Julia for Data Analysis teaches you how to perform core data science tasks with this amazing language. It is written by Bogumił Kamiński, a top contributor to Julia, #1 Julia answerer on StackOverflow, and a lead developer of Julia's core data package DataFrames.jl. You will learn how to write production-quality code in Julia, and utilize Julia's core features for data gathering, visualisation, and working with data frames. Plus, the engaging hands-on projects get you into the action quickly. About the technology Julia is a huge step forward for data science and scientific computing. It is a powerful high-performance programming language with many developer-friendly features like garbage collection, dynamic typing, just-in-time compilation, and a flexible approach to concurrent, parallel, and distributed computing. Although Julia's strong numerical programming features make it a favorite of data scientists, it is also an awesome general purpose programming language. About the reader For data scientists familiar with Python or R. No experience with Julia required.Trade Review"A brilliant guide to data analysis with Julia." Kevin Cheung, Carleton University "One of the best structured and well-written presentations of language fundamentals and analysis concepts that I've encountered. I highly recommend this book." Maureen Metzger, Kumanu "A solid, hands-on, and really enjoyable introduction to Julia." Sonja Krause-Harder, Elastic

    15 in stock

    £41.39

  • Clojure Applied

    Pragmatic Bookshelf Clojure Applied

    1 in stock

    Book SynopsisThink in the Clojure way! Once you're familiar with Clojure, take the next step with extended lessons on the best practices and most critical decisions you'll need to make while developing. Learn how to model your domain with data, transform it with pure functions, manage state, spread your work across cores, and structure apps with components. Discover how to use Clojure in the real world, and unlock the speed and power of this beautiful language on the Java Virtual Machine. Clojure Applied gives you the practical, realistic advice and depth of field that's been missing from your development practice. You want to develop software in the most effective, efficient way possible. This book gives you the answers you've been looking for in friendly, clear language. Dive into the core concepts of Clojure: immutable collections, concurrency, pure functions, and state management. You'll finally get the complete picture you've been looking for, rather than dozens of puzzle pieces you must assemble yourself.First, explore the core concepts of Clojure development: learn how to model your domain with immutable data; choose the ideal collection; and write simple, pure functions for efficient transformation. Next you'll apply those core concepts to build applications: discover how Clojure manages state and identity; spread your work for concurrent programming; and create and assemble components. Finally, see how to manage external integration and deployment concerns by developing a testing strategy, connecting with other data sources, and getting your libraries and applications out the door. Go beyond the toy box and into Clojure's way of thinking. By the end of this book, you'll have the tools and information to put Clojure's strengths to work. What You Need: To follow along with the examples in the book, you will need Clojure 1.6, Leinegen 2, and Java 6 or higher.

    1 in stock

    £28.98

  • Learn Functional Programming with Elixir

    The Pragmatic Programmers Learn Functional Programming with Elixir

    1 in stock

    Book SynopsisElixir's straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don't board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there. Functional programming offers useful techniques for building maintainable and scalable software that solves today's difficult problems. The demand for software written in this way is increasing - you don't want to miss out. In this book, you'll not only learn Elixir and its features, you'll also learn the mindset required to program functionally. Elixir's clean syntax is excellent for exploring the critical skills of using functions and concurrency. Start with the basic techniques of the functional way: working with immutable data, transforming data in discrete steps, and avoiding side effects. Next, take a deep look at values, expressions, functions, and modules. Then extend your programming with pattern matching and flow control with case, if, cond, and functions. Use recursive functions to create iterations. Work with data types such as lists, tuples, and maps. Improve code reusability and readability with Elixir's most common high-order functions. Explore how to use lazy computation with streams, design your data, and take advantage of polymorphism with protocols. Combine functions and handle failures in a maintainable way using Elixir features and libraries. Learn techniques that matter to make code that lives harmoniously with the language. What You Need: You'll need a computer and Elixir 1.4 or newer version installed. No previous functional programming or Elixir experience is required. Some experience with any programming language is recommended.

    1 in stock

    £32.78

  • Programming Clojure : Pragmatic Programmers

    Pragmatic Bookshelf Programming Clojure : Pragmatic Programmers

    1 in stock

    Book SynopsisDrowning in unnecessary complexity, unmanaged state, and tangles of spaghetti code? In the best tradition of Lisp, Clojure gets out of your way so you can focus on expressing simple solutions to hard problems. Clojure cuts through complexity by providing a set of composable tools--immutable data, functions, macros, and the interactive REPL. Written by members of the Clojure core team, this book is the essential, definitive guide to Clojure. This new edition includes information on all the newest features of Clojure, such as transducers and specs. Clojure joins the flexibility and agility of Lisp with the reach, stability, and performance of Java. Combine Clojure's tools for maximum effectiveness as you work with immutable data, functional programming, and safe concurrency to write programs that solve real-world problems. Start by reading and understanding Clojure syntax and see how Clojure is evaluated. From there, find out about the sequence abstraction, which combines immutable collections with functional programming to create truly reusable data transformation code. Clojure is a functional language; learn how to write programs in a functional style, and when and how to use recursion to your advantage. Discover Clojure's unique approach to state and identity, techniques for polymorphism and open systems using multimethods and protocols, and how to leverage Clojure's metaprogramming capabilities via macros. Finally, put all the pieces together in a real program. New to this edition is coverage of Clojure's spec library, one of the most interesting new features of Clojure for describing both data and functions. You can use Clojure spec to validate data, destructure data, explain invalid data, and generate large numbers of tests to verify the correctness of your code. With this book, you'll learn how to think in Clojure, and how to take advantage of its combined strengths to build powerful programs quickly. What You Need: Java 6 or higher Clojure 1.9

    1 in stock

    £37.99

  • Getting Clojure: Build Your Functional Skills One

    The Pragmatic Programmers Getting Clojure: Build Your Functional Skills One

    1 in stock

    Book SynopsisBehind every programming language lies a vision of how programs should be built. The vision behind Clojure is of a radically simple language framework holding together a sophisticated collection of programming features. Learning Clojure involves much more than just learning the mechanics of the language. To really get Clojure you need to understand the ideas underlying this structure of framework and features. You need this book: an accessible introduction to Clojure that focuses on the ideas behind the language as well as the practical details of writing code. Clojure attracts developers on the cutting edge and is arguably the best language for learning to program in the functional style without compromise. But this comes with a steep learning curve. Getting Clojure directly addresses this by teaching you how to think functionally as it teaches you the language. You'll learn about Clojure's powerful data structures and high-level functions, but you'll also learn what it means for a language to be functional, and how to think in Clojure's functional way. Each chapter of Getting Clojure takes a feature or two or three from the language, explains the syntax and the mechanics behind that feature so that you can make it work before digging into the deeper questions: What is the thinking behind the feature? And how does it fit in with the rest of the language? In Getting Clojure you'll learn Clojure's very simple syntax, but you'll also learn why that syntax is integral the way the language is constructed. You'll discover that most data structures in Clojure are immutable, but also why that leads to more reliable programs. And you'll see how easy it is to write Clojure functions and also how you can use those functions to build complex and capable systems. With real-world examples of how working Clojure programmers use the language, Getting Clojure will help you see the challenges of programming through the eye of experienced Clojure developers. What You Need: You will need to some background in programming. To follow along with the examples in the book, you will need Java 6 or new, Clojure 1.8 or 1.9, and Leiningen 2.

    1 in stock

    £36.57

  • Haskell Design Patterns

    Packt Publishing Limited Haskell Design Patterns

    1 in stock

    Book SynopsisTake your Haskell and functional programming skills to the next level by exploring new idioms and design patterns About This Book • Explore Haskell on a higher level through idioms and patterns • Get an in-depth look into the three strongholds of Haskell: higher-order functions, the Type system, and Lazy evaluation • Expand your understanding of Haskell and functional programming, one line of executable code at a time Who This Book Is For If you're a Haskell programmer with a firm grasp of the basics and ready to move more deeply into modern idiomatic Haskell programming, then this book is for you. What You Will Learn • Understand the relationship between the “Gang of Four” OOP Design Patterns and Haskell • Try out three ways of Streaming I/O: imperative, Lazy, and Iteratee based • Explore the pervasive pattern of Composition: from function composition through to high-level composition with Lenses • Synthesize Functor, Applicative, Arrow and Monad in a single conceptual framework • Follow the grand arc of Fold and Map on lists all the way to their culmination in Lenses and Generic Programming • Get a taste of Type-level programming in Haskell and how this relates to dependently-typed programming • Retrace the evolution, one key language extension at a time, of the Haskell Type and Kind systems • Place the elements of modern Haskell in a historical framework In Detail Design patterns and idioms can widen our perspective by showing us where to look, what to look at, and ultimately how to see what we are looking at. At their best, patterns are a shorthand method of communicating better ways to code (writing less, more maintainable, and more efficient code). This book starts with Haskell 98 and through the lens of patterns and idioms investigates the key advances and programming styles that together make "modern Haskell". Your journey begins with the three pillars of Haskell. Then you'll experience the problem with Lazy I/O, together with a solution. You'll also trace the hierarchy formed by Functor, Applicative, Arrow, and Monad. Next you'll explore how Fold and Map are generalized by Foldable and Traversable, which in turn is unified in a broader context by functional Lenses. You'll delve more deeply into the Type system, which will prepare you for an overview of Generic programming. In conclusion you go to the edge of Haskell by investigating the Kind system and how this relates to Dependently-typed programming. Style and approach Using short pieces of executable code, this guide gradually explores the broad pattern landscape of modern Haskell. Ideas are presented in their historical context and arrived at through intuitive derivations, always with a focus on the problems they solve.

    1 in stock

    £26.59

  • Solving Engineering Mechanics Problems with

    New Academic Science Ltd Solving Engineering Mechanics Problems with

    15 in stock

    Book Synopsis

    15 in stock

    £38.00

  • Building Kotlin Applications: A comprehensive

    BPB Publications Building Kotlin Applications: A comprehensive

    1 in stock

    Book Synopsis

    1 in stock

    £33.24

  • Matlab For Engineering

    World Scientific Publishing Co Pte Ltd Matlab For Engineering

    Out of stock

    Book SynopsisThis book presents an introduction to Matlab for students and professionals working in the field of engineering and other scientific and technical sectors, who have an interest or need to apply Matlab as a tool for undertaking simulations and formulating solutions for the problems concerned.The presentation is highly accessible, employing a step-by-step approach in discussing selected problems: deduction of the mathematical model from the physical phenomenon, followed by analysis of the solutions with Matlab. Since a physical phenomenon takes place in space and time, the corresponding mathematical model involves partial differential equations. For this reason, the book is dedicated to numerically solving these equations with the Finite Element Method and Finite Difference Method. Throughout, the text presents numerous examples and exercises with detailed worked solutions. Matlab for Engineering is a useful desktop reference for undergraduates and scientists alike in real world problem solving.Related Link(s)

    Out of stock

    £66.50

  • One Hundred Physics Visualizations Using Matlab

    World Scientific Publishing Co Pte Ltd One Hundred Physics Visualizations Using Matlab

    Out of stock

    Book SynopsisThis book provides visualizations of many topics in general physics. The aim is to have an interactive MATLAB script wherein the user can vary parameters in a specific problem and then immediately see the outcome by way of dynamic “movies” of the response of the system in question. MATLAB tools are used throughout and the software scripts accompany the text in Symbolic Mathematics, Classical Mechanics, Electromagnetism, Waves and Optics, Gases and Fluid Flow, Quantum Mechanics, Special and General Relativity, and Astrophysics and Cosmology. The emphasis is on building up an intuition by running many different parametric choices chosen actively by the user and watching the subsequent behavior of the system.Physics books using MATLAB do not have the range — or the intent — of this text. They are rather steeped in technical detail. Symbolic math is used extensively and is integral to the aim of using MATLAB tools to accomplish the technical aspects of problem solving.Table of ContentsSymbolic Mathematics; Classical Mechanics; Electromagnetism; Waves and Optics; Gases and Fluid Flow; Quantum Mechanics; Special and General Relativity, and Astrophysics and Cosmology.

    Out of stock

    £90.00

  • One Hundred Physics Visualizations Using Matlab

    World Scientific Publishing Co Pte Ltd One Hundred Physics Visualizations Using Matlab

    Out of stock

    Book SynopsisThis book provides visualizations of many topics in general physics. The aim is to have an interactive MATLAB script wherein the user can vary parameters in a specific problem and then immediately see the outcome by way of dynamic “movies” of the response of the system in question. MATLAB tools are used throughout and the software scripts accompany the text in Symbolic Mathematics, Classical Mechanics, Electromagnetism, Waves and Optics, Gases and Fluid Flow, Quantum Mechanics, Special and General Relativity, and Astrophysics and Cosmology. The emphasis is on building up an intuition by running many different parametric choices chosen actively by the user and watching the subsequent behavior of the system.Physics books using MATLAB do not have the range — or the intent — of this text. They are rather steeped in technical detail. Symbolic math is used extensively and is integral to the aim of using MATLAB tools to accomplish the technical aspects of problem solving.Table of ContentsSymbolic Mathematics; Classical Mechanics; Electromagnetism; Waves and Optics; Gases and Fluid Flow; Quantum Mechanics; Special and General Relativity, and Astrophysics and Cosmology.

    Out of stock

    £46.55

© 2026 Book Curl

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Maestro
    • Mastercard
    • PayPal
    • Shop Pay
    • Union Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account