Crates.io | jojo |
lib.rs | jojo |
version | 0.1.14 |
source | src |
created_at | 2018-09-04 12:15:03.787045 |
updated_at | 2018-09-19 00:04:01.392915 |
description | JoJo's Bizarre Programming Adventure. |
homepage | |
repository | https://github.com/xieyuheng/jojo |
max_upload_size | |
id | 82906 |
size | 6,297 |
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!
A dynamic language for learning, teaching and prototyping.
drop dup over tuck swap
With nightly rust toolchain :
cargo install jojo
Contributions are welcome! (The code base is still simple for now.)
I will write style-guide and hacking-guide for my contributors :)
See jojo-history for history of this project.
(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))
(cube x) = (mul x (mul x x))
(= (sum term a next b)
(if (gt a b)
0
(add (term a)
(sum term (next a) next b))))
(= (simpson-integral f a b n)
(= h (div (sub b a) n))
(= (simpson-coefficient k)
(cond [(or (eq 0 k) (eq n k)) 1]
[(odd-p k) 4]
[(even-p k) 2]))
(= (simpson-term k)
(mul (simpson-coefficient k)
(f (add a (mul k h)))))
(mul (sum simpson-term 0 inc n)
(div h 3)))
(= assert-delta
(macro [body]
(= delta (car body))
(= a (car (cdr body)))
(= b (car (cdr (cdr body))))
`(assert (lt (abs (sub ~a ~b)) ~delta))))
(assert-delta 0.0001
(simpson-integral cube 0 1 100)
(div 1 4))
See adventure for more code examples.