Ferret
Ferret is a free software lisp implementation designed to be used in real time embedded control systems. Ferret lisp compiles down to self contained C++11. Generated code is portable between any Operating System and/or Microcontroller that supports a C++11 compliant compiler. It has been verified to run on architectures ranging from embedded systems with as little as 2KB of RAM to general purpose computers running Linux/Mac OS X/Windows.
This repository contains the Ferret compiler. For more information about Ferret, including downloads and documentation for the latest release, check out Ferret's website
General Information
- Website - https://ferret-lang.org
- Source Code - https://github.com/nakkaya/ferret
- Mailing List - https://groups.google.com/forum/#!forum/ferret-lang
- Issue Tracker - https://github.com/nakkaya/ferret/issues
Quick Start
Download latest Ferret release,
wget https://ferret-lang.org/builds/ferret.jar
A program that sums the first 5 positive numbers.
;;; lazy-sum.clj (defn positive-numbers ([] (positive-numbers 1)) ([n] (cons n (lazy-seq (positive-numbers (inc n)))))) (println (->> (positive-numbers) (take 5) (apply +)))
Compile to binary using,
$ java -jar ferret.jar -i lazy-sum.clj $ g++ -std=c++11 -pthread lazy-sum.cpp $ ./a.out