A rusty lisp inspired by Clojure for usage as simple configuration language
```rust extern crate risp;
use risp::evalrispscript; use risp::types::RispType::Int; use risp::core::createcoreenvironment;
#[test] fn testminimalexample() { let mut env = createcoreenvironment(); env.set("var", Int(2));
let risp_script = "(+ 40 var)";
let result = eval_risp_script(risp_script, &mut env);
assert_eq!(result, Ok(Int(42)));
} ```
```clojure (def myInt 2)
(def myVector [1 myInt 3])
(def repeated (rep 2 1 2 3))
{:yes true :no false :added (+ myInt 20) :multiplied (* myInt 20) :repeated repeated :myVector myVector :myMap {:key myInt} :myString "Hello" :myDoResult (do (def myInt2 20) (+ myInt myInt2))} ```
```rust extern crate risp;
use risp::evalrispscript; use risp::core::createcoreenvironment;
struct SimpleSong {
name: String,
speed: i64,
notes: Vec
fn testconverttostructexample() { let mut env = createcoreenvironment();
let risp_script = r#"
{
:name "Name"
:speed 220
:notes [1 2 3]
}"#;
let result = eval_risp_script(risp_script, &mut env).unwrap();
let simple_song = SimpleSong {
name: result.get("name").unwrap().unwrap(),
speed: result.get("speed").unwrap().unwrap(),
notes: result.get("notes").unwrap().unwrap()
};
assert_eq!(simple_song.name, "Name");
assert_eq!(simple_song.speed, 220);
assert_eq!(simple_song.notes, vec![1, 2, 3]);
}
```