The f8 (fate) scripting language is a hybrid dialect of Lisp, Scheme and TCL; for more info, please see the genealogy and the reference manual (in progress).
It has been designed to be small, easy to expand and easy to embed in host applications. The core of the language is made of a single C++ header (~ 1000 loc in total) and a small library written using f8 itself.
f8 includes several neat features, among which:
- homoiconicity and introspection
- tail recursion
- static and dynamic scoping
- partial evaluation
- lambda functions with closures
It can bootstrap itself. For an overview on the language, please see this example; for an example on how to integrate the language in your application, please check the main file.
f8 comes with several libraries, dedicated to signal processing and machine learning. Among the functionalities there are:
- fft/ifft
- convolution
- sound decomposition
- clustering and classification
- basic neural networks
- plotting
It also comes with a system library that provides several functionalities, including threading and sockets, and it can also send OSC messages.
To compile, from root folder type:
mkdir build
cd build
cmake ..
make
The f8 language is released under the BSD 2-Clause license.
(c) 2024 by Carmine-Emanuele Cella