You will learn to think about programs as data, build small and powerful abstractions, and solve problems with one of the most influential language families in computer science.
Lisp is a family of languages that has influenced many modern programming languages. Its list-based syntax, evaluation model, and ability to treat code as data make it an ideal tool for understanding the foundations of functional programming, function composition, and domain-specific language construction.
In this training we will approach Lisp through its essential ideas: symbolic expressions, first-class functions, recursion, lists, macros, and evaluation. The goal is for you to use these concepts to improve your software design judgment, even when your daily work happens in other programming languages.
· Who is it directed to:
This training is recommended for developers:
- Programmers who want to strengthen their functional thinking
- Developers interested in expressive and minimal languages
- People who want to understand macros, metaprogramming, and internal languages
- Programmers who want to improve their ability to model problems with small abstractions
- Developers interested in the history and influence of Lisp in modern languages
· Pre-requirements:
Needed:
- Management of a text editor
- Previous programming experience in any language
- Willingness to work with a different syntax
Recommended:
- Basic knowledge of functional programming
- Experience with lists, recursion, or higher-order functions
- Interest in compilers, interpreters, or language design
· Training content:
- What Lisp is and why it is still relevant
- Symbolic expressions
- Atoms, lists, and pairs
- Expression evaluation
- Function definition
- First-class functions
- Recursion
- Conditionals and control flow
- List operations
- Map, filter, and reduce
- Closures
- Immutability and state
- Macros
- Code as data
- REPL and interactive development
- Basic error handling
- Program organization
- Building small abstractions
- Implementing a domain-specific language
- Practical functional modeling exercises
