Risp
A rusty lisp inspired by Clojure for usage as simple configuration language
Usage in Rust
extern crate risp;
use eval_risp_script;
use Int;
use create_core_environment;
Risp example showing every existing language feature
(def myInt 2)
(def myVector [1 myInt 3])
(def repeated (rep 2 1 2 3))
{:added (+ myInt 20)
:multiplied (* myInt 20)
:repeated repeated
:myVector myVector
:myMap {:key myInt}
:myString "Hello"
:myDoResult (do
(def myInt2 20)
(+ myInt myInt2))}
Convert evaluated Risp to Rust
extern crate risp;
use eval_risp_script;
use create_core_environment;
Goals
- Simple configuration language
- Subset of Clojure
Secret Real Goal
- Usable for configuring patches in my pet project https://github.com/shybyte/rust-midi-patcher
Non-Goals
- Performance
- Completeness