万本电子书0元读

万本电子书0元读

顶部广告

Functional Kotlin电子书

售       价:¥

6人正在读 | 0人评论 9.8

作       者:Mario Arias,Rivu Chakraborty

出  版  社:Packt Publishing

出版时间:2018-02-23

字       数:35.6万

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

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

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Learn how to apply Functional Programming with Kotlin to real-life projects with popular libraries like Arrow. About This Book ? Focus on the functional aspects of Kotlin and identify the advantages that functional programming brings to the table and the associated coding benefits, ? Implement common functional programming design patterns and techniques. ? Learn to combine OOP and Reactive Programming with Functional Programming and how RxKotlin and funkTionale can help you implementing Functional Programming in Kotlin Who This Book Is For Kotlin developers who have no functional programming experience, will benefit from this book. What You Will Learn ? Learn the Concepts of Functional Programming with Kotlin ? Discover the Coroutines in Kotlin ? Uncover Using funkTionale plugin ? Learn Monads, Functiors and Applicatives ? Combine Functional Programming with OOP and Reactive Programming ? Uncover Using Monads with funkTionale ? Discover Stream Processing In Detail Functional programming makes your application faster, improves performance, and increases your productivity. Kotlin supports many of the popular and advanced functional features of functional languages. This book will cover the A-Z of functional programming in Kotlin. This book bridges the language gap for Kotlin developers by showing you how to create and consume functional constructs in Kotlin. We also bridge the domain gap by showing how functional constructs can be applied in business scenarios. We’ll take you through lambdas, pattern matching, immutability, and help you develop a deep understanding of the concepts and practices of functional programming. If you want learn to address problems using Recursion, Koltin has support for it as well. You’ll also learn how to use the funKtionale library to perform currying and lazy programming and more. Finally, you’ll learn functional design patterns and techniques that will make you a better programmer.By the end of the book, you will be more confident in your functional programming skills and will be able to apply them while programming in Kotlin. Style and approach Loaded with numerous code examples and real life projects, this book helps you dive deep into Functional Programming with Kotlin as well as applying it with help of Functional Programming Plugins like funkTionale and RxKotlin.
目录展开

Title Page

Copyright and Credits

Functional Kotlin

Dedication

Packt Upsell

Why subscribe?

PacktPub.com

Contributors

About the authors

About the reviewer

Packt is searching for authors like you

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files

Download the color images

Conventions used

Get in touch

Reviews

Kotlin – Data Types, Objects, and Classes

Classes

Properties

Methods

Inheritance

Abstract classes

Interfaces

Objects

Object declarations

Companion objects

Generics

Type alias

Nullable types

Checking for null

Checking for non-null types

Safe calls

The Elvis (?:) operator

The (!!) operator

Kotlin's type system

The Any type

Minimum common types

The Unit type

The Nothing type

Other types

Data classes

Canonical methods

The copy() method

Destructuring methods

Annotations

Enum

Summary

Getting Started with Functional Programming

What is functional programming?

Basics concepts

First-class and higher-order functions

Pure functions

Recursive functions

Lazy evaluation

Functional collections

Implementing a functional list

Summary

Immutability - It's Important

What is immutability?

Implementing immutability in Kotlin

The difference between var and val

Compile time constants

Types of immutability

Immutable reference (referential immutability)

Immutable values

Immutable collections

The advantages of immutability

Thread safety

Low coupling

Referential transparency

Failure atomicity

Caching

Compiler optimization

Pure functions

The disadvantages of immutability

Summary

Functions, Function Types, and Side Effects

Functions in Kotlin

Returning two values from a function

Extension functions

Default arguments

Nested functions

Function types in functional programming

Lambda

Function as property

High order functions

Pure functions and side effects

Side effects

Pure functions

Summary

More on Functions

Single-expression functions

Parameters

vararg

Lambda

Named parameters

Named parameters on high-order functions

Default parameters

Extension functions

Extension functions and inheritance

Extension functions as members

Extension functions with conflicting names

Extension functions for objects

Infix functions

Operator overloading

Binary operators

Invoke

Indexed access

Unary operators

Type-safe builders

Creating a DSL

Inline functions

Inline restrictions

Recursion and corecursion

Summary

Delegates in Kotlin

Introduction to delegation

Understanding delegation

Delegates in Kotlin

Property delegation (standard delegates)

The Delegates.notNull function and lateinit

The lazy function

Observing property value change with Delegates.Observable

The power of veto – Delegates.vetoable

Delegated map

Custom delegation

Local delegates

Class delegation

Summary

Asynchronous Programming with Coroutines

Introduction to coroutines

Understanding JVM threads

Hello, coroutine world!

Using coroutines in real life

Synchronous implementation

Callbacks

Java Futures

Promises with Kovenant

Coroutines

Coroutine context

Channels

Channel pipelines

Managing mutable state

Switching contexts

Thread safe structures

Mutexes

Actors

Summary

Collections and Data Operations in Kotlin

An introduction to collections

The advantages of a collections framework

List and MutableList

Set and MutableSet

Map and MutableMap

Data operations in a collection

The map function

The filter function

The flatMap function

The drop functions

The take functions

The zip function

Grouping collections

Summary

Functional Programming and Reactive Programming

Combining FP with OOP

Functional reactive programming

The Reactive Manifesto

Functional reactive frameworks for Kotlin

Getting started with RxKotlin

Downloading and setting up RxKotlin

Comparing the Pull mechanism with the RxJava Push mechanism

Observables

How Observable works

The Observable.create method

The Observable.from methods

Iterator<T>.toObservable

Subscriber – the Observer interface

Subscribing and disposing

Summary

Functors, Applicatives, and Monads

Functors

Monads

Applicatives

Summary

Working with Streams in Kotlin

Introduction to Streams

Collections versus Streams

Working with Streams

Primitive streams

Stream factory methods

Stream Builder

Creating empty Streams – Stream.empty()

Creating a Stream by passing elements – Stream.of()

Generating Streams – Stream.generate()

Collector and Stream.collect – collecting Streams

The Collectors.toList(), Collectors.toSet(), and Collectors.toCollection() methods

Collecting into Map – Collectors.toMap()

Joining Stream of strings – Collectors.joining()

Grouping elements of Stream – Collectors.groupingBy()

Summary

Getting Started with Arrow

Function composition

Partial application

Binding

Reverse

Pipes

Currying

Differences between the currying and partial application

Logical complement

Memoization

Partial functions

Identity and constant

Optics

Configuring Arrows code generation

Generating lenses

Summary

Arrow Types

Option

Arrow's type hierarchy

Either

Monad transformers

Try

State

Corecursion with State

Summary

Kotlin's Quick Start

Writing and running Kotlin

Kotlin online

On your console

Installing SDKMAN

Installing Kotlin through SDKMAN

Kotlin's REPL

Compiling and executing Kotlin files

Using Gradle

Install Gradle through SDKMAN

Creating a distributable Gradle command

Creating a Gradle project file

Creating our Hello World code

Using IntelliJ IDEA or Android Studio

Importing Gradle files with IntelliJ IDEA

Basic Kotlin syntax

General features

Packages

String concatenation and interpolation

Comments

Control structures

if expression

when expression

for loop

while and do loops

Going further

Other Books You May Enjoy

Leave a review - let other readers know what you think

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

发表评论

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

买过这本书的人还买过

读了这本书的人还在读

回顶部