万本电子书0元读

万本电子书0元读

顶部广告

Scala Functional Programming Patterns电子书

售       价:¥

4人正在读 | 0人评论 9.8

作       者:Atul S.Khot

出  版  社:Packt Publishing

出版时间:2015-12-29

字       数:70.1万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Grok and perform effective functional programming in Scala About This Book Understand functional programming patterns by comparing them with the traditional object-oriented design patterns Write robust, safer, and better code using the declarative programming paradigm An illustrative guide for programmers to create functional programming patterns with Scala Who This Book Is For If you have done Java programming before and have a basic knowledge of Scala and its syntax, then this book is an ideal choice to help you to understand the context, the traditional design pattern applicable, and the Scala way. Having previous knowledge of design patterns will help, though it is not strictly necessary. What You Will Learn Get to know about functional programming and the value Scala's FP idioms bring to the table Solve day-to-day programming problems using functional programming idioms Cut down the boiler-plate and express patterns simply and elegantly using Scala's concise syntax Tame system complexity by reducing the moving parts Write easier to reason about concurrent code using the actor paradigm and the Akka library Apply recursive thinking and understand how to create solutions without mutation Reuse existing code to compose new behavior Combine the object-oriented and functional programming approaches for effective programming using Scala In Detail Scala is used to construct elegant class hierarchies for maximum code reuse and extensibility and to implement their behavior using higher-order functions. Its functional programming (FP) features are a boon to help you design “easy to reason about” systems to control the growing software complexities. Knowing how and where to apply the many Scala techniques is challenging. Looking at Scala best practices in the context of what you already know helps you grasp these concepts quickly, and helps you see where and why to use them. This book begins with the rationale behind patterns to help you understand where and why each pattern is applied. You will discover what tail recursion brings to your table and will get an understanding of how to create solutions without mutations. We then explain the concept of memorization and infinite sequences for on-demand computation. Further, the book takes you through Scala’s stackable traits and dependency injection, a popular technique to produce loosely-coupled software systems. You will also explore how to currying favors to your code and how to simplify it by de-construction via pattern matching. We also show you how to do pipeline transformations using higher order functions such as the pipes and filters pattern. Then we guide you through the increasing importance of concurrent programming and the pitfalls of traditional code concurrency. Lastly, the book takes a paradigm shift to show you the different techniques that functional programming brings to your plate. This book is an invaluable source to help you understand and perform functional programming and solve common programming problems using Scala’s programming patterns. Style and approach This is a hands-on guide to Scala's game-changing features for programming. It is filled with many code examples and figures that illustrate various Scala idioms and best practices.
目录展开

Scala Functional Programming Patterns

Table of Contents

Scala Functional Programming Patterns

Credits

About the Author

Aknowledgement

About the Reviewers

www.PacktPub.com

Support files, eBooks, discount offers, and more

Why subscribe?

Free access for Packt account holders

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Errata

Piracy

Questions

1. Grokking the Functional Way

Abstractions

Concise expression

Functions

Immutable

Referential transparency

The problem – grouping continuous integers

Java code

Going scalaish

Thinking recursively...

Reusability – the commonality/variability analysis

The one-liner shockers

Scala idioms

Patterns and those aha! moments

The command design pattern

The strategy design pattern

Passing algorithms around

Summary

2. Singletons, Factories, and Builders

Singletons – being one and only one

Null Objects – singletons in another garb

Null Objects – the Scala way

Options are container

Scala singletons

The apply() factory method

The factory method pattern

The Scala version

Builders

Ease of object creation

Scala shines again

Summary

3. Recursion and Chasing your Own Tail

Recursive structures

Pattern matching

Deconstruction with case statements

Stack overflows

Tail recursion to the rescue

Getting the nth element of a list

An expression parser

Persistent data structures

Two forms of recursion

Summary

4. Lazy Sequences – Being Lazy, Being Good

Illusion and reality – the proxy pattern

Hibernate's lazy loading

Lazy val – calling by need

Infinite sequences – Scala streams

Recursive streams

Memoization and the flyweight pattern

Call by name

Streams are collections

Sieve of Eratosthenes

A view to a collection

Summary

5. Taming Multiple Inheritance with Traits

The iterator design pattern

Interfaces as types

The dreaded diamond

Traits – Scala's rich interfaces

Mix-ins – rich interfaces

Frills and thrills – the decorator pattern

Scala's easy and breezy decorations – stackable modifications

Dependencies injection pattern

A taste of the cake pattern

Sealed traits

Defeating the dreaded diamond

Summary

6. Currying Favors with Your Code

Functions as first-class values

Roping in a scope

Local functions – hiding and biding their time

The underscore – Scala's Swiss army knife

A taste of the curry

Type inference

Of implicits and explicits

Stylish blocks

The loan pattern

Serving the curry

Frills and thrills – decorators again

Wrapping it up

Summary

7. Of Visitors and Chains of Responsibilities

A tale of two hierarchies

The Visitor pattern

Many hues of pattern matching

De-structuring

Typed patterns

Pattern guards

Tuple explosion

Partial functions

Visitor pattern – the Scala way

Lifting it up

The chain of responsibility

Scalaish Chain Of Responsibilities

Match and mismatch – the collect idiom

Summary

8. Traversals – Mapping/Filtering/Folding/Reducing

Iterating the Scala way

A validation problem

Setting the stage

First cut–using arrays

Second cut–using a map

Third cut–using a for expression

Fourth cut–using foldLeft

Fifth cut–using andThen

Sixth cut–using compose

Foreach–sugary sweetener

One generator

A generator and a filter

Two generators

Monads

Reduce

Summary

9. Higher Order Functions

The strategy design pattern

A strategy in Scala land

Functors

Maps

Monads

FlatMap

Monoids

An inverted index

Pipes and filters

Pipes and filters – the Scala version

It is a Monoid

Lazy collections

Summary

10. Actors and Message Passing

The recursive grep

The producer/consumer pattern

Threads – masters and slaves

Events

Immutability is golden

Akka actors take the stage

Summary

11. It's a Paradigm Shift

Verbosity

Sorting it out!

Sorted

SortBy

SortWith

Scalaish Schwartzian transform

Functional error handling

Pattern matching

Threads and futures

Scala's Futures

Parser combinators

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部