Ferret is a free software Clojure implementation, it compiles a restricted subset of the Clojure language to self contained ISO C++11 which allows for the use of Clojure in real time embedded control systems.
This repository contains the Ferret compiler. For more information about Ferret, including downloads and documentation for the latest release, check out Ferret's website
- Website - https://ferret-lang.org
- Source Code - https://github.com/nakkaya/ferret - https://git.nakkaya.com/nakkaya/ferret
- Mailing List - https://groups.google.com/forum/#!forum/ferret-lang
- Issue Tracker - https://github.com/nakkaya/ferret/issues
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