Learning Paths
Choose your journey based on background and goals. Structured learning paths for Python data scientists, Node.js developers, Rust programmers, mathematics educators, and computational scientists with time estimates and outcomes.
Code Examples
Python Data Scientist - SymPy Migration
Quick comparison of SymPy vs MathHook syntax
// Not applicable for Python path
Node.js Developer - Web Form Parsing
Parse user input LaTeX from web forms
// Not applicable for Node.js path
Rust Programmer - Custom Extension
Extend Universal Function Registry with custom function
use mathhook::prelude::*;
// Implement custom simplification rule
fn custom_simplify(expr: &Expression) -> Expression {
// Custom logic here
expr.clone()
}
// Register custom function
// (Actual API may vary - check documentation)
let x = symbol!(x);
let expr = expr!(x ^ 2);
Mathematics Educator - Step-by-Step
Generate educational explanations for students
use mathhook::prelude::*;
let x = symbol!(x);
let expr = expr!((x + 1) * (x - 1));
let explanation = expr.explain_simplification();
for step in &explanation.steps {
println!("{}: {}", step.title, step.description);
}
Computational Scientist - Symbolic Jacobian
Generate Jacobian matrix for nonlinear system
use mathhook::prelude::*;
let x = symbol!(x);
let y = symbol!(y);
// System of equations
let f1 = expr!(add: (x ^ 2), y);
let f2 = expr!(x * y);
// Compute Jacobian symbolically
let df1_dx = f1.derivative(x.clone());
let df1_dy = f1.derivative(y.clone());
let df2_dx = f2.derivative(x.clone());
let df2_dy = f2.derivative(y.clone());
let jacobian = Expression::matrix(vec![
vec![df1_dx, df1_dy],
vec![df2_dx, df2_dy],
]);