Functional Programming | Table O Contents
The Elixir
app comes bundled with ErLang
aka the BEAM
virtual machine …
- Functional Programming | Table O Contents
- OOP v FNP
- Erlang
- Session Maintenance
- How to Begin a new Elixer Session from the Terminal via REPL
- How to Begin a new Elixer Session from the Terminal via CODE
- EXS vs EX
- How to Terminate your Elixer Session from the Terminal
- How to Terminate Your Elixer Session
- Clear Terminal Window
- How to Clear the Terminal window during an Elixir Session
- Async Tasks
- BEAM Files
- Elixir OTP
- Elixer Gen Servers
- Immutability
- BEAM Files (dupe)
- Source files
- Session Termination
- Lists, Tuples and Maps in Elixir
- The Pin Operator
- Jekyll Server
- Last Subtitle
- Support
Note. The Flammarion Logo Badge
in the page header above is an .svg
image file set to the dimensions of 5%
width, auto
height, and zoom
. Go ahead and test the zoom-out
feature by hovering over the badge to engage the expansion of the image from your desktop.
OOP v FNP
Hint. Object-oriented Programming (OOP) versus Functional Programming (FNP) …
Erlang
Note. The Elixir
app comes bundled with ErLang
Functional programming app plus the BEAM
virtual machine.
Session Maintenance
Elixir has several ready commands at the developer’s disposal.
Here are some examples of basic commands.
How to Begin a new Elixer Session from the Terminal via REPL
The command iex
spins up a new Elixir Session
from the Terminal window set to your app’s root folder, as follows:
iex
Note. The iex
command works inside a type of Elixir-shell
called a Read-Evaluate-Print-Loop
or (REPL).
Note. The above command spins-up a new Elixer Session
that produces an iex
prompt`, as follows:
iex>
How to Begin a new Elixer Session from the Terminal via CODE
More to come …
EXS vs EX
Test files generally use the .exs
extension and are NOT compiled to disk as a set of hidden dot beam
files.
Whereas, the .ex
extension is used when simply working on an app
;where all app code placed inside the module
are compiled to disk as a set of hidden dot beam
files.
How to Terminate your Elixer Session from the Terminal
From the Terminal window …
;where your instance of the Elixir app is running …
Type the following command …
system.halt
or,
Simple hit the Control-C
combo key TWICE
Control-c (twice)
How to Terminate Your Elixer Session
From the Terminal window …
;where your instance of the Elixir app is running …
Type the following command …
system.halt
or,
Control-c (twice)
Clear Terminal Window
Tip. At any time while working with Elixer’s Interactive Shell
via the Terminal simply type the command clear
and press enter
to wipe the Interactive Shell
clean.
How to Clear the Terminal window during an Elixir Session
Tip. At any time while working with Elixer’s Interactive Shell
or (REPL) via the Terminal simply type the command clear
and press enter
to wipe the Interactive Shell
clean.
Async Tasks
More to come …
BEAM Files
Rule. The source code file ending in the .ex
extension is automatically compiled to disk thus creating a set of hidden dot beam
or files with a .beam
extension.
Whereas, the source code file ending with the .exs
extension is compiled only in memory rather than compiling the file to disk as a hidden dot beam
file.
No hidden dot beam
files are created.
Elixir OTP
More to come …
Elixer Gen Servers
More to come …
Immutability
Rule. A variable name
can be re-assigned in Elixer.
However, the underlying value remains immutable.
For example, changing the assignment of a variable from (x) to (y) does not change the underlying value the newly assigned variable is pointing to.
Immutability (dupe)
Rule. A variable name
can be re-assigned in Elixer.
However, the underlying value remains immutable.
For example, changing the assignment of a variable from (x) to (y) does not change the underlying value the newly assigned variable is pointing to.
Assigning (10) to x
Rule. Use dot notation
to call an anonymous function, as follows:
iex> anon.(10)
Yields …
iex> 11
BEAM Files (dupe)
Rule. The source code file ending in the .ex
extension is automatically compiled to disk thus creating a set of hidden dot beam
or files with a .beam
extension.
Elixir Scripts
Whereas, the source code file ending with the .exs
extension is compiled only in memory rather than compiling the file to disk as a hidden dot beam
file.
No hidden dot beam
files are created.
Source files
Src
Source code in Elixir can be executed from a file established in the src
subdirectory of your app.
Set the file name
to the same name as its parent
module with either one of two extensions … .ex
or .exs
Then, copy the contents of your module
into your new ModuleName.ex
.
Note. The type of Elixir source code
file does differ between .ex
or .exs
.
Session Termination
Test Files
Test files generally use the .exs
extension and are NOT compiled to disk as a set of hidden dot beam
files.
Whereas, the .ex
extension is used when simply working on an app
;where all app code placed inside the module
are compiled to disk as a set of hidden dot beam
files.
Lists, Tuples and Maps in Elixir
- char-lists
Elixir Lists
More to come …
How to Concatenate 2-Lists
More to come …
iex> x = [1, 2, 3] ++ [4,5,6]
Returns,
iex> [1, 2, 3, 4, 5, 6]
How to Return the Head of the List
iex> hd(lst)
Returns,
iex> 1
How to Return the Tail of the List
iex> tl(lst)
Returns,
iex> 2,3,4,5,6
The Pin Operator
The pin operator
or ^
or “hat” can precede the assignment of a variable to stop the Match function
, as follows:
iex> ^x = 22
Returns,
iex> 22
Jekyll Server
More to come …
Note. Detailed instructions on how to view this file locally using a Jekyll server are included in the accompanying Gemfile
for the project.
In short, type the following command statement from a Terminal window when set to the docs
subdirectory.
jekyll serve --watch --baseurl "" -o
Last Subtitle
More to come …
Note. The above synopsis was derived from an article written by André Albuquerque [1] and Daniel Ciaxinha [2] via @packtPub
Support
Please support the co-workers who aggregate the Source Links for our projects.
Patreon
Like what you see in this project? If so, then support the authors and machine-elves
who aggregate the source links and pages for our projects via Patreon.