Lisp Flavoured Erlang -02
Lisp, short for "List Processing," is a family of programming languages known for its distinctive, fully parenthesized prefix notation. Originally specified in 1960 by John McCarthy, Lisp is one of the oldest high-level programming languages still in common use today, second only to Fortran.
Key characteristics of Lisp include:
Prefix Notation: Lisp expressions are written in prefix notation, where operators precede their operands. For example, instead of
2 + 2, you write
(+ 2 2) in Lisp.
Homoiconicity: Lisp code and data have the same structure, making it easy to manipulate code as data and vice versa.
Garbage Collection: Lisp includes automatic memory management, helping developers avoid memory leaks.
Lisp has been influential in various fields, including artificial intelligence, where it has been used for symbolic reasoning and expert systems. It also introduced concepts like closures and dynamic typing.
Lisp dialects, such as Common Lisp and Scheme, have evolved over time and are still actively used in research and practical applications today. Its flexibility, powerful macro system, and support for interactive development continue to make Lisp a unique and valuable language in the world of programming.
A REPL (Read-Eval-Print Loop) is an interactive programming environment that allows users to enter expressions, which are then read, evaluated, and the results printed. Lisp, particularly Common Lisp, is well-known for its REPL, which is a fundamental part of the language's development and experimentation process.
LFE, short for Lisp Flavoured Erlang, is a programming language and Lisp dialect built on the Core Erlang and Erlang virtual machine. It is designed for functional, concurrent, garbage-collected, general-purpose programming. LFE combines the strengths of Erlang with a Lisp syntax, enabling developers to write distributed, fault-tolerant, real-time, and non-stop applications.
Key features of LFE include:
Lisp Syntax: LFE provides a Lisp-like syntax, making it familiar to Lisp enthusiasts while leveraging Erlang's capabilities.
Functional and Concurrent: LFE supports functional programming paradigms and concurrency, making it suitable for building highly concurrent and fault-tolerant systems.
Distributed Applications: It excels in creating distributed applications, maintaining Erlang's focus on distributed computing.
Garbage Collection: LFE incorporates garbage collection for memory management.
Starting the LFE REPL:-
There are two ways to start LFE REPL:-
>lfe on terminal
Exit the LFE REPL:-
There are three ways to exit.
^c twice in a row.
iii) Press first