{{language|exec=interpreted|checking=dynamic|gc=yes|site=https://github.com/rxi/fe}}
fe is a '''tiny''', embeddable language implemented in ANSI C.
<syntaxhighlight lang="clojure">
 (= reverse (fn (lst)
  (let res nil)
  (while lst
    (= res (cons (car lst) res))
    (= lst (cdr lst))
  )
  res
 ))
 
 (= animals '("cat" "dog" "fox"))
 
 (print (reverse animals)) ; => ("fox" "dog" "cat")
</syntaxhighlight>
== Overview ==
* Supports numbers, symbols, strings, pairs, lambdas, macros
* Lexically scoped variables, closures
* Small memory usage within a fixed-sized memory region — no mallocs
* Simple mark and sweep garbage collector
* Easy to use C API
* Portable ANSI C — works on 32 and 64bit
* Concise — less than 800 sloc

== Documentation ==
* [https://github.com/rxi/fe/tree/master/scripts Demo Scripts]
* [https://github.com/rxi/fe/blob/master/doc/capi.md C API Overview]
* [https://github.com/rxi/fe/blob/master/doc/lang.md Language Overview]
* [https://github.com/rxi/fe/blob/master/doc/impl.md Implementation Overview]

== Contributing ==
The library focuses on being lightweight and minimal; pull requests will
likely not be merged. Bug reports and questions are welcome.

== License ==
This library is free software; you can redistribute it and/or modify it under
the terms of the MIT license. See [https://github.com/rxi/fe/blob/master/LICENSE LICENSE] for details.