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],
]);

🔗 Related Topics