Table of Contents
Functional and Concurrent Programming by Michel Charpentier Table of Contents
Return to Functional and Concurrent Programming by Michel Charpentier, Functional and Concurrent Programming Glossary, Functional and Concurrent Programming, Functional Programming, Functional Languages, Functional Programming Concurrency, Functional Bibliography, Functional Courses, Functional Glossary, Awesome Functional, Functional GitHub, Functional Topics
Fair Use Source: B0B8S2QNM9 (FnCncrPg 2022)
About the Author
Part I Functional Programming
-
- 1.1 What Is Functional Programming?
- 1.2 Functions
- 1.4 Summary
-
- 2.5 Extension Methods
- 2.6 Local Functions
- 2.9 Named Arguments
- 2.10 Type Parameters
- 2.11 Summary
-
- 3.2 Actions
- 3.3 Expressions Versus Statements
- 3.4 Functional Variables
- 3.5 Immutable Objects
- 3.6 Implementation of Mutable State
- 3.7 Functional Lists
- 3.10 Summary
Chapter 4 Case Study: Active–Passive Sets
4.2 Functional Values
4.3 Functional Objects
4.4 Summary
Chapter 5 Pattern Matching and Algebraic Data Types
5.1 Functional Switch
5.2 Tuples
5.3 Options
5.4 Revisiting Functional Lists
5.5 Trees
5.6 Illustration: List Zipper
5.7 Extractors
5.8 Summary
Chapter 6 Recursive Programming
6.3 Key Principles of Recursive Algorithms
6.5 Tail Recursion
6.6 Examples of Tail Recursive Functions
6.7 Summary
7.1 Recursive Algorithms as Equalities
7.2 Traversing Lists
7.4 Building Lists from the Execution Stack
7.5 Recursion on Multiple/Nested Lists
7.6 Recursion on Sublists Other Than the Tail
7.7 Building Lists in Reverse Order
7.8 Illustration: Sorting
7.9 Building Lists Efficiently
7.10 Summary
Chapter 8 Case Study: Binary Search Trees
8.2 Sets of Integers as Binary Search Trees
8.3 Implementation Without Rebalancing
8.5 Summary
Chapter 9 Higher-Order Functions
9.2 Currying
9.3 Function Literals
9.5 Single-Abstract-Method Interfaces
9.7 Closures
9.9 Summary
Chapter 10 Standard Higher-Order Functions
10.1 Functions with Predicate Arguments
10.3 flatMap
10.5 iterate, tabulate, and unfold
10.6 sortWith, sortBy, maxBy, and minBy
10.8 Implementing Standard Higher-Order Functions
10.9 foreach, map, flatMap, and for-Comprehensions
10.10 Summary
Chapter 11 Case Study: File Systems as Trees
11.2 A Node-Searching Helper Function
11.3 String Representation
11.5 Querying
11.6 Navigation
11.8 Summary
12.1 Delayed Evaluation of Arguments
12.3 Control Abstraction
12.4 Internal Domain-Specific Languages
12.5 Streams as Lazily Evaluated Lists
12.7 Streams as Infinite Data Structures
12.8 Iterators
12.9 Lists, Streams, Iterators, and Views
12.10 Delayed Evaluation of Fields and Local Variables
12.11 Illustration: Subset-Sum
12.12 Summary
13.1 Exceptions and Special Values
13.5 Higher-Order Functions and Pipelines
13.6 Summary
Chapter 14 Case Study: Trampolines
14.1 Tail-Call Optimization
14.2 Trampolines for Tail-Calls
14.3 Tail-Call Optimization in Java
14.4 Dealing with Non-Tail-Calls
14.5 Summary
A Brief Interlude
Chapter 15 Types (and Related Concepts)
15.1 Typing Strategies
15.4 Abstract Data Types
15.5 Type Inference
15.6 Subtypes
15.7 Polymorphism
15.10 Type Classes
15.11 Summary
Part II Concurrent Programming
Chapter 16 Concepts of Concurrent Programming
16.1 Non-sequential Programs
16.2 Concurrent Programming Concepts
16.3 Summary
Chapter 17 Threads and Nondeterminism
17.2 Creating Threads Using Lambda Expressions
17.3 Nondeterminism of Multithreaded Programs
17.4 Thread Termination
17.5 Testing and Debugging Multithreaded Programs
17.6 Summary
Chapter 18 Atomicity and Locking
18.1 Atomicity
18.3 Atomic Operations and Non-atomic Composition
18.4 Locking
18.7 Summary
Chapter 19 Thread-Safe Objects
19.1 Immutable Objects
19.2 Encapsulating Synchronization Policies
19.3 Avoiding Reference Escape
19.5 Leveraging Immutable Types
19.6 Thread-Safety
19.7 Summary
Chapter 20 Case Study: Thread-Safe Queue
20.2 Single Public Lock Implementation
20.3 Single Private Lock Implementation
20.5 Summary
Chapter 21 Thread Pools
21.1 Fire-and-Forget Asynchronous Execution
21.2 Illustration: Parallel Server
21.3 Different Types of Thread Pools
21.4 Parallel Collections
21.5 Summary
22.1 Illustration of the Need for Synchronization
22.2 Synchronizers
22.3 Deadlocks
22.4 Debugging Deadlocks with Thread Dumps
22.5 The Java Memory Model
22.6 Summary
Chapter 23 Common Synchronizers
23.1 Locks
23.3 Semaphores
23.4 Conditions
23.5 Blocking Queues
23.6 Summary
Chapter 24 Case Study: Parallel Execution
24.1 Sequential Reference Implementation
24.3 Bounded Number of Threads
24.4 Dedicated Thread Pool
24.5 Shared Thread Pool
24.6 Bounded Thread Pool
24.7 Parallel Collections
24.8 Asynchronous Task Submission Using Conditions
24.9 Two-Semaphore Implementation
24.10 Summary
Chapter 25 Futures and Promises
25.1 Functional Tasks
25.2 Futures as Synchronizers
25.3 Timeouts, Failures, and Cancellation
25.5 Promises
25.6 Illustration: Thread-Safe Caching
25.7 Summary
Chapter 26 Functional-Concurrent Programming
26.1 Correctness and Performnce Issues with Blocking
26.2 Callbacks
26.3 Higher-Order Functions on Futures
26.4 Function flatMap on Futures
26.5 Illustration: Parallel Server Revisited
26.6 Functional-Concurrent Programming Patterns
26.7 Summary
Chapter 27 Minimizing Thread Blocking
27.1 Atomic Operations
27.2 Lock-Free Data Structures
27.5 Actors
27.6 Reactive Streams
27.7 Non-blocking Synchronization
27.8 Summary
Chapter 28 Case Study: Parallel Strategies
28.1 Problem Definition
28.2 Sequential Implementation with Timeout
28.3 Parallel Implementation Using invokeAny
28.4 Parallel Implementation Using CompletionService
28.5 Asynchronous Implementation with Scala Futures
28.6 Asynchronous Implementation with CompletableFuture
28.7 Caching Results from Strategies
28.8 Summary
Appendix A Features of Java and Kotlin
A.1 Functions in Java and Kotlin
A.2 Immutability
A.3 Pattern Matching and Algebraic Data Types
A.4 Recursive Programming
A.6 Lazy Evaluation
A.7 Handling Failures
A.8 Types
A.9 Threads
A.11 Thread-Safe Objects
A.12 Thread Pools
A.13 Synchronization
A.14 Futures and Functional-Concurrent Programming
A.15 Minimizing Thread Blocking
Fair Use Sources
Functional Programming: Functional Programming Compare and Contrast 10 Languages by Cloud Monk (December 2024)
Purely Functional Languages, Purely Functional Programming Languages (Haskell, Elm, PureScript, Agda, Idris, Coq, Lean, Miranda, Erlang, F Sharp | F)
Popular Functional Programming Languages (Haskell, Scala, Clojure, F Sharp | F, Erlang, Elm, OCaml, Elixir, Racket, PureScript, Lisp, Scheme, Common Lisp, Rust, Swift, Java, Kotlin, TypeScript, JavaScript, Python, Ruby)
FP, Functional Clojure, Functional Haskell, Functional Erlang, Functional Elixir, Functional F Sharp | Functional F. Data Oriented Programming, Functional C Plus Plus | Functional C++, Functional C Sharp | Functional C, Functional Java, Functional Kotlin, Functional Scala, Functional Go, Functional Rust, Functional JavaScript (Functional React), Functional TypeScript (Functional Angular), Functional Swift; Lisp, FP (programming language), Data-Oriented Programming (DOP), Functional and Concurrent Programming, Functional Programming Bibliography - Manning's Programming Functional in, Functional Programming Glossary - Glossaire de FP - French, Awesome Functional Programming, Functional Programming Topics, Concurrency. (navbar_functional - see also , navbar_python_functional, navbar_django_functional, navbar_flask_functional, navbar_javascript_functional, navbar_typescript_functional, navbar_react_functional, navbar_angular_functional, navbar_vue_functional, navbar_java_functional, navbar_kotlin_functional, navbar_spring_functional, navbar_scala_functional, navbar_clojure_functional, navbar_csharp_functional, navbar_dotnet_functional, navbar_fsharp_functional, navbar_haskell_functional, navbar_rust_functional, navbar_cpp_functional, navbar_swift_functional, navbar_elixir_functional, navbar_erlang_functional, navbar_functional, navbar_functional_reactive)
Cloud Monk is Retired ( for now). Buddha with you. © 2025 and Beginningless Time - Present Moment - Three Times: The Buddhas or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.