舉報

會員
Functional Kotlin
Functionalprogrammingmakesyourapplicationfaster,improvesperformance,andincreasesyourproductivity.Kotlinsupportsmanyofthepopularandadvancedfunctionalfeaturesoffunctionallanguages.ThisbookwillcovertheA-ZoffunctionalprogramminginKotlin.ThisbookbridgesthelanguagegapforKotlindevelopersbyshowingyouhowtocreateandconsumefunctionalconstructsinKotlin.Wealsobridgethedomaingapbyshowinghowfunctionalconstructscanbeappliedinbusinessscenarios.We’lltakeyouthroughlambdas,patternmatching,immutability,andhelpyoudevelopadeepunderstandingoftheconceptsandpracticesoffunctionalprogramming.IfyouwantlearntoaddressproblemsusingRecursion,Koltinhassupportforitaswell.You’llalsolearnhowtousethefunKtionalelibrarytoperformcurryingandlazyprogrammingandmore.Finally,you’lllearnfunctionaldesignpatternsandtechniquesthatwillmakeyouabetterprogrammer.Bytheendofthebook,youwillbemoreconfidentinyourfunctionalprogrammingskillsandwillbeabletoapplythemwhileprogramminginKotlin.
目錄(256章)
倒序
- coverpage
- Title Page
- 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 更新時間:2021-06-24 19:15:59
推薦閱讀
- Android和PHP開發(fā)最佳實踐(第2版)
- 新一代通用視頻編碼H.266/VVC:原理、標準與實現(xiàn)
- WebAssembly實戰(zhàn)
- Python入門很簡單
- 區(qū)塊鏈:以太坊DApp開發(fā)實戰(zhàn)
- jQuery開發(fā)基礎教程
- 從0到1:Python數(shù)據(jù)分析
- PLC應用技術(三菱FX2N系列)
- NGINX Cookbook
- Unity 2018 Shaders and Effects Cookbook
- OpenGL Data Visualization Cookbook
- Machine Learning for Developers
- Qt 4開發(fā)實踐
- C語言從入門到精通
- Visual C++開發(fā)寶典
- Raspberry Pi Blueprints
- R語言:邁向大數(shù)據(jù)之路
- Spark for Data Science
- Mastering Docker(Second Edition)
- 零基礎輕松學Java
- Android for the BeagleBone Black
- PHP程序開發(fā)參考手冊
- Python機器學習核心算法編程實例
- 新編C語言程序設計教程(第2版)
- 零基礎學Python程序設計
- Python數(shù)據(jù)分析快速上手
- 基于ASP.NET的Web應用開發(fā)技術實用教程
- Maven Essentials
- Oracle公有云實用指南
- Mastering Kali Linux Wireless Pentesting