Fennel Programming Language
fennel-lang.org
1
Leaving SiteNav
External Link Disclaimer
You are about to visit fennel-lang.org. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
Fennel is a programming language that brings the simplicity and expressiveness of Lisp to the Lua runtime. Created by Phil Hagelberg in 2018, Fennel is designed to be a Lisp that compiles to Lua, combining Lisp macros and functional programming features with Lua's lightweight, embeddable runtime and fast virtual machine. With over 2,500 stars as of 2026, Fennel has been adopted by game developers, embedded systems programmers, and the Neovim configuration community. Key features include: Lua compilation (Fennel compiles directly to human-readable Lua source code, allowing seamless interoperability with existing Lua libraries, LuaJIT, and Lua-based frameworks like LÖVE, LuaSocket, and the Lua C API), Lisp syntax (using S-expressions and prefix notation familiar to Clojure, Scheme, and Common Lisp programmers, reducing syntax noise), pattern matching (destructure and match macros for pattern matching on data structures, supporting table destructuring, guards, and or-patterns), destructuring (extracting values from nested data structures in function parameters and let bindings), macros (powerful hygienic macro system for compile-time code generation and DSL creation, with the ability to define macros inline or in separate macro modules), iterators (each, collect, icollect, accumulate, and fnl/for iteration constructs that are more readable than Lua's generic for loops), strict global detection (compile-time warnings for undefined globals, preventing typos and promoting good scoping practices), multiple return values (transparently handling Lua's multiple return values), module system (integration with Lua's require and module system, with support for compile-time module loading), shebang script support (running .fnl files directly with a Lua interpreter), and comprehensive error messages with source location information.
Tags & Categories
Categories
Tags
Statistics
1
Views
0
Clicks
0
Like
0
Dislike