Gradually typed
Annotations are optional. Script-like code is inferred for speed and correctness. Annotations help editor tooling.
public beta
Raven is a differentiable programming language that you can deploy. Crunch the numbers on your own GPUs, or emit tiny binaries for the browser and beyond. Or that's the idea: sorcery can have unintended consequences, after all.
Annotations are optional. Script-like code is inferred for speed and correctness. Annotations help editor tooling.
Compound data is immutable by default. The swap operator keeps the convenience of mutation.
Integers, bytes, even malloc are written in Raven itself. Drop down to pointers and get control over layout and allocations.
Arrays, a rich numeric tower, SIMD, autodiff. Powered by WebAssembly and WebGPU in the browser and (soon) a native local backend.
Tasks and channels instead of async, with implicit nurseries for cancellation and robust error handling.
Run interactively in notebooks or use a build watcher for fast compiles.
$ npm i -g @unkindnesses/raven$ raven> 2+24> Complex(1, 2) / 20.5 + 1.0im> factorial(big(50))big(3041409320171337804361260816606476884377641568960512…)