jojo 0.1.10

JoJo's Bizarre Programming Adventure.
docs.rs failed to build jojo-0.1.10
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

JoJo's Bizarre Programming Adventure

Build Status


DIO: ZA WARUDO is full of languages without good type system, we don't need anymore!

JOJO: Just one more!

DIO: Do you care about HUMANITY! JOJO?

JOJO: I REJECT MY HUMANITY, DIO!


Features

jojo is a dynamic lisp-like language for scripting rust.

  • implemented in rust by a dynamic threaded code interpreter
  • object oriented, but no side-effect over objects
  • uses rust's Arc as garbage collector
  • 🚧 simple FFI to rust library
  • 🚧 forth like threading macro

Getting start

With nightly rust toolchain :

cargo install jojo

Contributing

Contributions are welcome! (The code base is still simple for now.)

  • Give suggestions in issues.
  • Or simply throw pull requests to me!

I will write style-guide and hacking-guide for my contributors :)

See jojo-history for history of this project.

Example

Square Roots by Newton's Method

(square x) = (mul x x)

(average x y) = (div (add x y) 2)

(= (sqrt-iter guess x)
   (if (good-enough-p guess x)
     guess
     (sqrt-iter (improve guess x) x)))

(improve guess x) = (average guess (div x guess))
(good-enough-p guess x) = (lt (abs (sub (square guess) x)) 0.001)
(sqrt x) = (sqrt-iter 1 x)

(sqrt 9)
(sqrt (add 100 21))
(square (sqrt 1000))

🚢 ✈ ADVENTURE️ ⛴️ ⛵

all-jojos-1

See adventure for more code examples.

LICENSE

GPLv3