oris
An interpreter for Monkey
Install
cargo install oris
REPL
$ oris
>> 1 + 1
2
>>
Script
$ cat dt.oris
let answer = 2 * 3 * 7;
print(answer);
$ oris dt.oris
42
Embedded
let code = b"
let is_composite = fn(n) {
let f = fn(d) {
if n <= d {
false
} else {
let q = n / d;
if q * d == n {
true
} else {
f(d + 1)
}
}
}
f(2)
}
let sum = fn(m) {
let f = fn(n) {
if n == m {
0
} else {
if is_composite(n) {
0
} else {
n
} + f(n + 1)
}
};
f(1)
}
sum(limit)
";
let mut env = builder.with_int.build;
let result = entry.unwrap;
assert_eq!;