1.
Introduction to Flix
2.
Getting Started
2.1.
Hello World!
2.2.
Next Steps
3.
Data Types
3.1.
Primitives
3.2.
Tuples
3.3.
Enums
3.4.
Type Aliases
4.
Functions
5.
Immutable Data
5.1.
Lists
5.2.
Chains and Vectors
5.3.
Sets and Maps
5.4.
Records
6.
Mutable Data
6.1.
Regions
6.2.
References
6.3.
Arrays
6.4.
Collections
7.
Control Structures
7.1.
If-Then-Else
7.2.
Pattern Matching
7.3.
Foreach
7.4.
Foreach-Yield
7.5.
Monadic For-Yield
7.6.
Applicative For-Yield
8.
Structured Concurrency
9.
Parallelism
10.
Effect System
11.
Modules
11.1.
Declaring Modules
11.2.
Using Modules
11.3.
Companion Modules
12.
Traits
12.1.
Essential Traits
12.2.
Automatic Derivation
12.3.
Higher-Kinded Types
13.
Effects and Handlers
14.
Laziness
15.
Fixpoints
15.1.
Stratified Negation
15.2.
Local Predicates
15.3.
Functional Predicates
15.4.
Lattice Semantics
16.
Interoperability
16.1.
Creating Objects
16.2.
Calling Methods
16.3.
Reading and Writing Fields
16.4.
Classes and Interfaces
16.5.
Nested and Inner Classes
16.6.
Exceptions
16.7.
Java Collections
17.
Everyday Programming
17.1.
The Main Function
17.2.
Printing to Standard Out
17.3.
String Interpolation
17.4.
Tail Recursion
17.5.
Anonymous and Named Holes
17.6.
Type Ascriptions
17.7.
Redundancy
17.8.
Debugging
18.
Tools
18.1.
Visual Studio Code
18.2.
Test Framework
19.
Build and Packages
19.1.
Build
19.2.
Packages
19.3.
Publish
19.4.
Outdated
20.
Advanced Features
20.1.
Checked Casts
20.2.
Unchecked Casts
20.3.
Bugs and Unreachable Code
20.4.
Type Match
20.5.
Purity Reflection
20.6.
Type-Level Programming
21.
Common Problems
22.
Frequently Asked Questions
23.
Glossary
24.
Additional Information
24.1.
Research Literature
24.2.
Blog Posts
25.
Appendix
25.1.
Legal Identifiers
25.2.
Operator Precedence
Light (default)
Rust
Coal
Navy
Ayu
Programming Flix
Tools
This chapter covers the tooling which Flix ships with, including:
A fully-featured
Visual Studio Code extension
.
A
package manager
.
A built-in
test framework
.