Wolfram Language Notation
Parse and generate Mathematica/Wolfram Language syntax for compatibility with Wolfram products. Supports bidirectional conversion between MathHook expressions and Wolfram notation.
Code Examples
Basic Wolfram Parsing
Parse common Wolfram Language expressions
use mathhook::parser::wolfram::parse_wolfram;
// Functions (capital letters, brackets)
let expr = parse_wolfram("Sin[x]")?;
let expr = parse_wolfram("Exp[x]")?;
let expr = parse_wolfram("Log[x]")?;
// Powers use ^ (not brackets)
let expr = parse_wolfram("x^2")?;
Calculus Operations
Wolfram calculus notation
use mathhook::parser::wolfram::parse_wolfram;
// Derivative: D[expr, var]
let expr = parse_wolfram("D[x^2, x]")?; // 2x
// Integral: Integrate[expr, var]
let expr = parse_wolfram("Integrate[x^2, x]")?; // x^3/3
// Definite integral: Integrate[expr, {var, a, b}]
let expr = parse_wolfram("Integrate[x^2, {x, 0, 1}]")?;
// Limit: Limit[expr, var -> value]
let expr = parse_wolfram("Limit[Sin[x]/x, x -> 0]")?;
Generating Wolfram Output
Format MathHook expressions as Wolfram Language
use mathhook::prelude::*;
use mathhook::formatter::wolfram::WolframFormatter;
let formatter = WolframFormatter::new();
let x = symbol!(x);
// Functions
let expr = expr!(sin(x));
println!("{}", formatter.format(&expr)); // Sin[x]
// Complex expressions
let expr = expr!((x + 1) / (x - 1));
println!("{}", formatter.format(&expr)); // (x + 1)/(x - 1)
Cross-Platform Validation
Export to Wolfram for verification
use mathhook::prelude::*;
use mathhook::formatter::wolfram::WolframFormatter;
// Compute derivative in MathHook
let x = symbol!(x);
let f = expr!(x^3 + 2*x^2 + x);
let df = f.derivative(&x, 1);
// Export to Wolfram for verification
let formatter = WolframFormatter::new();
let wolfram_code = formatter.format(&df);
println!("Verify in Wolfram Alpha:");
println!("Simplify[{}]", wolfram_code);