You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: content/about.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -7,11 +7,11 @@ long_title = "About LFE"
7
7
long_description = "A small bit of background on the programming language."
8
8
+++
9
9
10
-
# The Language
10
+
##The Language
11
11
12
12
LFE is a Lisp-2+ written for the Erlang VM, providing 100% compatibility with Core Erlang. It is a proper, functional dialect of Lisp with a REPL and macros, as well as features inherited from Erlang, such as pattern pattern matching. Importantly, LFE boasts seamless interoperability with Erlang and the BEAM ecosystem of libraries. It not only has been used in stable production applications since 2015, it has also been employed by start-ups as their differentiating tech. LFE is flexible enough to be everything from your go-to scripting solution to your preferred syntax for massively scalable, soft-real time services.
13
13
14
-
# A Short History
14
+
##A Short History
15
15
16
16
While it is well-known the Robert Virding released the very first version of it in 2008, there was a little more initial whimsy associated with the decision to write the LFE programming language:
17
17
@@ -26,6 +26,6 @@ While it is well-known the Robert Virding released the very first version of it
26
26
> * I like implementing languages.
27
27
> * I also thought it would be a fun problem to solve. It contains many different parts and is quite open ended.
28
28
29
-
# Its Creator
29
+
##Its Creator
30
30
31
31
Robert Virding is one of the co-inventors of Erlang and was an early member of the Ericsson Computer Science Lab. He took part in the original system design and contributed much of the original libraries, as well as to the current compiler. He has always been interested in the design of languages and their implementation, particularly functional and logic languages. Robert has created several different languages in Erlang and on the Erlang system, which have had various levels of adoption around the world. He has also worked as an entrepreneur, having been one of the co-founders of one of the first Erlang startups (Bluetail). Additionally, Robert spent a number of years at the Swedish Defence Materiel Administration (FMV) Modelling and Simulations Group. He co-authored the first book on Erlang, published by Prentice-Hall, is now Principal Language Expert at Erlang Solutions Ltd., and is regularly invited to teach and present throughout the world.
Copy file name to clipboardexpand all lines: content/community.md
+40-23
Original file line number
Diff line number
Diff line change
@@ -5,35 +5,52 @@ in_search_index = true
5
5
[extra]
6
6
long_title = "Community Resources"
7
7
long_description = "The LFE community is small but passionate; we are firm believers in the Erlang VM and OTP, usually as a result of having suffered greatly in their absence and knowing incredible strengths. Most of all, though, we have a deep appreciation for the aesthetics, usefulness, and raw power of LISP. This is where you will find us."
8
+
8
9
+++
9
10
10
-
# Social Media
11
+
## [Social Media](#social-media)
12
+
13
+
<iclass="fab fa-mastodon"></i> [LFE](https://fosstodon.org/web/@lfe) on Mastodon
<iclass="fab fa-slack fa-1x"></i> There's also an LFE channel on the official [Erlang Slack workspace](https://erlanger.slack.com) (get an invite [here](https://erlef.org/slack-invite/erlanger))
<iclass="fas fa-envelope fa-1x"></i> The [LFE mail list](http://groups.google.com/group/lisp-flavoured-erlang) (Google group)
27
+
28
+
<iclass="fas fa-hashtag fa-1x"></i> The `#erlang-lisp` channel on [Libera.chat](https://web.libera.chat/) (you'll need to [register your nick](https://libera.chat/guides/registration))
29
+
30
+
<iclass="fas fa-blog fa-1x"></i> The [LFE Blog](https://blog.lfe.io)
31
+
32
+
<iclass="fab fa-wikipedia-w fa-1x"></i> [LFE on Wikipedia](https://en.wikipedia.org/wiki/LFE_(programming_language))
* <iclass="fab fa-slack fa-1x"></i> There's also an LFE channel on the official [Erlang Slack workspace](https://erlanger.slack.com) (get an invite [here](https://erlef.org/slack-invite/erlanger))
<iclass="fab fa-github fa-1x"></i> The [lfex Github org](https://github.com/lfex) (LFE community libraries)
21
47
22
-
* <iclass="fas fa-envelope fa-1x"></i> The [LFE mail list](http://groups.google.com/group/lisp-flavoured-erlang) (Google group)
23
-
* <iclass="fas fa-hashtag fa-1x"></i> The `#erlang-lisp` channel on [Libera.chat](https://web.libera.chat/) (you'll need to [register your nick](https://libera.chat/guides/registration))
24
-
* <iclass="fas fa-blog fa-1x"></i> The [LFE Blog](https://blog.lfe.io)
25
-
* <iclass="fab fa-wikipedia-w fa-1x"></i> [LFE on Wikipedia](https://en.wikipedia.org/wiki/LFE_(programming_language))
48
+
<iclass="fab fa-github fa-1x"></i> The [lfe-rebar3 Github org](https://github.com/lfe-rebar3) (LFE rebar3 plugins)
26
49
27
-
# Videos
50
+
<iclass="fas fa-edit fa-1x"></i> [LFE on Rosetta Code](http://rosettacode.org/wiki/Category:LFE)
Copy file name to clipboardexpand all lines: content/learn.md
+8-11
Original file line number
Diff line number
Diff line change
@@ -8,8 +8,6 @@ long_description = "Learning LFE must be taken in two tracks: learning the synta
8
8
9
9
+++
10
10
11
-
# LFE
12
-
13
11
## [Quick Start Guides](#quick-start-guides)
14
12
15
13
[Quick Start with rebar3](https://lfe.io/books/rebar3-quick-start/) - This will get you up and running with LFE, requiring _only_ that you have a modern Erlang installed (version 21+) and `rebar3`.
@@ -32,39 +30,38 @@ Once you've learned the syntax and the underlying principles of the Erlang VM, y
32
30
33
31
[The community](/community) will be an invaluable resource in your journey of learning, to be sure to stop in whatever medium makes you happy, say "hi" and ask us lots of questions!
34
32
35
-
# Erlang
33
+
34
+
## Erlang
36
35
37
36
There are some phenomenal materials available for a self-paced Erlang/OTP education. Some of the classics are given below. For those with bigger budgets, remember that formal training is also an option! (In fact, there are not only classes offered for Erlang, but also LFE ...)
38
37
39
-
## The Language
38
+
###The Language
40
39
41
40
[Learn You Some Erlang for Great Good!](https://learnyousomeerlang.com/) - Probably one of the best (and _definitely_ the most fun) books available for learning Erlang. (Also available [in print](https://nostarch.com/erlang).)
42
41
43
-
## OTP
42
+
###OTP
44
43
45
44
[Designing for Scalability with Erlang/OTP](https://www.oreilly.com/library/view/designing-for-scalability/9781449361556/) - The thinking person's OTP book: where to go when you really want to understand OTP.
46
45
47
46
[Erlang and OTP in Action](https://www.manning.com/books/erlang-and-otp-in-action) - This book is another fantastic resource, building up an OTP application piece at a time as you move through the chapters.
48
47
49
-
## In Production
48
+
###In Production
50
49
51
50
Once you've learned how to write Erlang/LFE/OTP applications, is time to get them into production, and you'll find the following invaluable references for that:
52
51
53
52
*[Adopting Erlang](https://adoptingerlang.org/) - _"Adopting Erlang is an ongoing effort to gather all the resources that will help you use Erlang in a business. The booksite is divided in three sections focusing particularly on Erlang/OTP’s higher level concepts in the current open source ecosystem, how to use it in production (while setting up a pipeline for continuous development and delivery), and how to build a team when you’re starting from scratch."_
54
53
*[Stuff Goes Bad - Erlang in Anger](https://erlang-in-anger.com/) - _"This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang."_
55
54
56
-
# Lisp Arcana
55
+
##Lisp Arcana
57
56
58
57
In the event that you want to dive deeper into the world of Lisp itself, there are several excellent texts to explore.
59
58
60
-
## Lisp Internals
59
+
###Lisp Internals
61
60
62
61
*[Lisp in Small Pieces](https://www.cambridge.org/core/books/lisp-in-small-pieces/66FD2BE3EDDDC68CA87D652C82CF849E) - _"This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages, namely Lisp, Scheme and related dialects. It describes 11 interpreters and 2 compilers, including very recent techniques of interpretation and compilation."_
63
-
64
62
*[Let Over Lambda—50 Years of Lisp](https://letoverlambda.com/) - _"Starting with the fundamentals, it describes the most advanced features of the most advanced language: COMMON LISP. The point of this book is to expose you to ideas that you might otherwise never be exposed to. This book is about macros, that is programs that write programs. Macros are what make lisp the greatest programming language in the world. When used properly, macros enable amazing feats of abstraction, programmer productivity, and code efficiency and security that are unheard of elsewhere. Macros let you do things you simply cannot do in other languages."_
65
63
66
-
## Lisp Reference
64
+
###Lisp Reference
67
65
68
66
*[Common Lisp HyperSpec](http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm) - This is the definitive reference manual for the Common Lisp standard. The LFE core contributors have made nearly constant reference (and deference) to this document in the course of implementing features in LFE.
69
-
70
67
*[The Moonual](http://www.softwarepreservation.org/projects/LISP/MIT/Moon-MACLISP_Reference_Manual-Apr_08_1974.pdf) - This is a bit of computing history that not many are aware of: the manual for [MACLISP](https://en.wikipedia.org/wiki/Maclisp) written by David Moon. This is of interest to LFE developers due to the influence it has had upon the design and development of LFE. LFE actually derives most of it Lisp nature due to the experiences Robert Virding had as a physics PhD student who programmed in MACLISP on university machines. Even since then, we have constantly referenced the Moonual, almost as much as the Common Lisp HyperSpec (and in some cases, more!). It is of particular interest that the MAC project at MIT not only gave birth to MACLISP, but also [MACSYMA](https://en.wikipedia.org/wiki/Macsyma) (originally written in MACLISP, since ported to Common Lisp) which significantly influenced the development of Mathematica.
[Erlang Run-Time System Application (ERTS) Reference Manual](http://erlang.org/doc/apps/erts/index.html) - As an LFE programmer, this is one of the most powerful reference resources you can have at your fingertips. Once you get to the point to where you are ready to build production-ready applications, this will be a constant companion. In particular:
55
53
@@ -65,7 +63,7 @@ If you will be interfacing with other languages, then these resources will be of
65
63
* The [Ports and Port Drivers](https://erlang.org/doc/reference_manual/ports.html) reference and the [Erlang Interop/Ports User Guide](http://erlang.org/doc/tutorial/c_port.html)
66
64
* The [Jinterface package](http://erlang.org/doc/apps/jinterface/jinterface_users_guide.html) and the [Jinterface Reference Manual](http://erlang.org/doc/apps/jinterface/index.html)
67
65
68
-
# rebar3
66
+
##rebar3
69
67
70
68
One of the things you might find yourself needing is specialised `rebar3` plugins for your various LFE projects. You may write these in either Erlang or LFE (or, in fact, any BEAM language that has a `rebar3` compiler). There are a ton of good resources on the rebar3 project site, including:
0 commit comments