Bytecode-compiled Scheme-like Lisp with symbol interning, tail call optimization, and HTTP/KV outbound.
- Pipeline: Source -> Tokenizer -> Parser -> AST -> Compiler -> Bytecode -> Stack VM
- Symbol interning via
Interner(string -> u32 id) for fast comparisons - Lexical addressing resolved at compile time; dedicated
TailCallopcode for TCO - 29 built-in functions: arithmetic, comparison, list ops, I/O, type predicates, HTTP, env, KV
- Special forms:
quote,define(with function sugar),lambda,if,and,or,begin,let,set! - HTTP outbound via coroutine/yield:
(http-get url),(http-post url body),(env "KEY") - KV storage via coroutine/yield:
(kv-get "key"),(kv-set "key" "value"),(kv-del "key") - Default instruction limit: 10,000,000 (configurable via
with_instruction_limit())
cargo install --path .
# Inline code
lisp "(+ 1 2)"
# From file
lisp -f program.scm
# Piped input
echo "hello" | lisp "(display (read-line))"use otherfunc_lisp::LispInterpreter;
use otherfunc_core::Interpreter;
let mut lisp = LispInterpreter::new();
let output = lisp.execute("(+ 1 2)", "").unwrap();
assert_eq!(output, "3");cargo test -p otherfunc-lisp # 33 tests