The Wayback Machine - https://web.archive.org/web/20210727200305/https://fennel-lang.org/

Fennel

Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system.

Anywhere you can run Lua code, you can run Fennel code.

;; Sample: read the state of the keyboard and move the player accordingly
(local dirs {:up [0 -1] :down [0 1] :left [-1 0] :right [1 0]})

(each [key delta (pairs dirs)]
  (when (love.keyboard.isDown key)
    (let [[dx dy] delta
          [px py] player
          x (+ px (* dx player.speed dt))
          y (+ py (* dy player.speed dt))]
      (world:move player x y))))

Usage

See the install instructions in the setup guide.

That's too much work!

Fine, you can use Fennel right here without installing anything:

Curious about how a piece of code compiles? See for yourself with a side-by-side view how Fennel turns into Lua and vice-versa.

Documentation

Looking for other versions? Docs are generated for:

Development

Fennel's repository is on Sourcehut , and discussion occurs on the mailing list and the #fennel channel on Libera.Chat and on Matrix .

There is also a wiki for collecting ideas.


Fennel is copyright © 2016-2021 Calvin Rose and contributors and is released under the MIT/X11 license. This website is under the same terms.