Skip to content

AshyIsMe/jr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jr - j in rust ... eventually

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?...

What is jr?

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.

Why

For fun! :D

Also to get better at rust and j.

What's left to do?

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

usage

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published