j is amazing: https://www.jsoftware.com/
rust is also great: https://doc.rust-lang.org/stable/book/
How hard could it be to write our own j interpreter in rust?...
Jr is a rust implementation of the J programming language. It is intended to be feature compatible with the official jsoftware implementation (though not necessarily bug compatible).
It relies on the ndarray crate.
Some extremely useful j books and documentation:
Note: Arthur Whitney and Roger Hui style C (Incunabulum) is not a direct inspiration for the rust code in this project.
For fun! :D
Also to get better at rust and j.
CURRENT STATUS: STATUS.md
TODO:
- Implement the rest of the primitives (see: (STATUS.md) and
src/lib.rs
) - Tests, lots more tests needed
- Foreigns
- Locales - partial
- Draw the rest of the owl
Done:
- Basic scanning and tokenizing
- Basic verb and adverb evaluation
- A few primitive verbs implemented for integer nouns
- Finish
src/lib.rs:eval()
- Implement the verb rank concept
- J compatible display of nouns
cargo build --release
./target/release/jr
1 2 3 + 4 5 6
[5, 7, 9]
Tests:
cargo test
# quick run
cargo run
# debug logs
RUST_LOG=jr=debug cargo run