LFE MACHINE MANUAL
Title Page
Copyright
About the Cover
Dedication
Preface
Forward
Acknowledgments
1.
Part I - Getting Started
❱
1.1.
Introduction
1.2.
About LFE
1.3.
Prerequisites
1.4.
Conventions
1.5.
Development Setup
1.6.
'Hello, World!'
❱
1.6.1.
Classic, REPL
1.6.2.
Classic, main
1.6.3.
LFE/OTP
1.7.
Walk-through: An LFE Guessing Game
❱
1.7.1.
Planning the Game
1.7.2.
Code Explore
❱
1.7.2.1.
Getting User Input
1.7.2.2.
Checking the Input
1.7.3.
Integrating into an Application
❱
1.7.3.1.
handle_cast
1.7.3.2.
Game API
1.7.3.3.
Finishing Touches
1.7.3.4.
Playing the Game
1.7.4.
WIP - Review
1.8.
The LFE REPL
❱
1.8.1.
Core Features
1.8.2.
Starting LFE
1.8.3.
WIP - readline Support
1.8.4.
(help)
❱
1.8.4.1.
REPL Functions
1.8.4.2.
REPL Commands
1.8.4.3.
Special Variables
1.8.5.
Command Interface
1.8.6.
WIP - Job Control
1.8.7.
Files
2.
Part II - Code as Data
❱
2.1.
Variables
❱
2.1.1.
Bindings
2.1.2.
Pattern-matching Preview
2.1.3.
Globals Revisted
2.2.
Primitive Types
❱
2.2.1.
Integers
2.2.2.
Floats
2.2.3.
Atoms (Symbols)
2.2.4.
Booleans
2.2.5.
Characters
2.3.
Cons Cells
2.4.
Lists and Strings
2.5.
Bytes and Binaries
2.6.
Tuples
2.7.
Property Lists
2.8.
Maps
2.9.
Arrays
2.10.
Dicts
2.11.
Records
2.12.
Pattern Matching
2.13.
Generic Sequence Functions
3.
Part III - Data as Code
❱
3.1.
Expressions
3.2.
Functions
3.3.
Closures
3.4.
Evaluation
3.5.
Expressions
3.6.
Processes
3.7.
Messages and Their Passing
3.8.
Objects and Flavors
3.9.
I/O
3.10.
Accessing Files
3.11.
Modules
3.12.
Packages
3.13.
Scripting with LFE
3.14.
Creating LFE Projects
❱
3.14.1.
Using rebar3
3.14.2.
Project Layout Conventions
4.
Part IV - Advanced Topics
❱
4.1.
Errors and Debugging
4.2.
Writing Unit Tests
4.3.
The Common Test Framework
4.4.
The Propr Test Framework
4.5.
The Compiler
4.6.
Macros
4.7.
Distributed LFE
4.8.
Ports and Port Drivers
4.9.
Servers
4.10.
Clients
5.
Part V - OTP
❱
5.1.
Behaviours
5.2.
Applications
5.3.
Releases
5.4.
Tables and Databases
5.5.
Example OTP Project
6.
Part VI - Tooling
❱
6.1.
rebar3
❱
6.1.1.
Quick Start
❱
6.1.1.1.
Introduction
6.1.1.2.
Going Plaid
6.1.1.3.
Creating a New Project
6.1.1.4.
LFE Code
❱
6.1.1.4.1.
The REPL
6.1.1.4.2.
Sample Code
6.1.1.4.3.
Message-Passing
6.1.1.5.
Behind the Scenes
6.1.1.6.
Where Next?
6.1.2.
Plugin Reference
❱
6.1.2.1.
Introduction
❱
6.1.2.1.1.
Features
6.1.2.1.2.
Background
6.1.2.2.
Setup
❱
6.1.2.2.1.
Dependencies
6.1.2.2.2.
The Plugin
6.1.2.3.
Command Reference
❱
6.1.2.3.1.
Compiling
❱
6.1.2.3.1.1.
Package Support
6.1.2.3.2.
REPL
6.1.2.3.3.
Testing
❱
6.1.2.3.3.1.
eunit
6.1.2.3.3.2.
ltest
6.1.2.3.3.3.
ct
6.1.2.3.4.
Creating Projects
❱
6.1.2.3.4.1.
lib
6.1.2.3.4.2.
main
6.1.2.3.4.3.
escript
6.1.2.3.4.4.
app
6.1.2.3.4.5.
release
6.1.2.3.5.
Running Code
❱
6.1.2.3.5.1.
run
6.1.2.3.5.2.
run-escript
6.1.2.3.5.3.
run-release
6.1.2.3.6.
Cleanup
❱
6.1.2.3.6.1.
clean
6.1.2.3.6.2.
clean-build
6.1.2.3.6.3.
clean-cache
6.1.2.3.6.4.
clean-all
7.
Part VII - Guides
❱
7.1.
Style Guide
❱
7.1.1.
Introduction
7.1.2.
Formatting
❱
7.1.2.1.
File Headers
7.1.2.2.
Indentation
7.1.2.3.
Whitespace
7.1.2.4.
Line Length
7.1.2.5.
Spelling and Abbreviations
7.1.3.
Naming
❱
7.1.3.1.
Symbols
7.1.3.2.
Names in Modules
7.1.3.3.
Globals
7.1.3.4.
Predicates
7.1.3.5.
Intent
7.1.4.
Documentation
❱
7.1.4.1.
Docstrings
7.1.4.2.
Code Comments
7.1.4.3.
Attention Required
7.1.5.
Data Representation
❱
7.1.5.1.
Lists
7.1.5.2.
Tuples and Proplists
7.1.5.3.
Maps
7.1.5.4.
Records
7.1.6.
Errors
7.1.7.
Processes, Servers & Messages
❱
7.1.7.1.
Processes
7.1.7.2.
Servers
7.1.7.3.
Messages
7.1.8.
Software Components
❱
7.1.8.1.
Flow Control
7.1.8.2.
Functions
7.1.8.3.
Modules
7.1.8.4.
Libraries
7.1.8.5.
Projects
7.1.9.
Software Engineering
❱
7.1.9.1.
Principles
7.1.9.2.
Priorities
7.1.9.3.
Architecture
7.2.
Code of Conduct
8.
Part VIII - Conclusion
Feedback
LFE Documentation
Built with mdBook
LFE PDP
Light
Rust
Coal
Navy
Ayu
LFE MACHINE MANUAL
Quick Start