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.
Structs
6.5.
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.
Associated Types
12.4.
Associated Effects
12.5.
Higher-Kinded Types
13.
Fixpoints
13.1.
Stratified Negation
13.2.
Local Predicates
13.3.
Functional Predicates
13.4.
Lattice Semantics
14.
Interoperability
14.1.
Creating Objects
14.2.
Calling Methods
14.3.
Reading and Writing Fields
14.4.
Classes and Interfaces
14.5.
Nested and Inner Classes
14.6.
Exceptions
14.7.
Boxing and Unboxing
14.8.
Java Collections
15.
Everyday Programming
15.1.
The Main Function
15.2.
Printing to Standard Out
15.3.
String Interpolation
15.4.
Tail Recursion
15.5.
Anonymous and Named Holes
15.6.
Type Ascriptions
15.7.
Redundancy
15.8.
Debugging
16.
Tools
16.1.
Visual Studio Code
16.2.
Test Framework
17.
Build and Packages
17.1.
Build
17.2.
Packages
17.3.
Publish
17.4.
Outdated
18.
Advanced Features
18.1.
Checked Casts
18.2.
Unchecked Casts
18.3.
Bugs and Unreachable Code
18.4.
Laziness
18.5.
Type Match
18.6.
Purity Reflection
18.7.
Type-Level Programming
19.
Common Problems
20.
Frequently Asked Questions
21.
Glossary
22.
Additional Information
22.1.
Research Literature
22.2.
Blog Posts
22.3.
Videos
23.
Appendix
23.1.
Legal Identifiers
23.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
.