symbolica 2.2.0

A blazing fast computer algebra system
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use symbolica::prelude::*;

fn main() {
    let expr = parse!("f(z)*f(f(x))*f(y)");
    let pat_expr = parse!("f(x_)");

    let rhs_expr = parse!("g(x_)");
    let rhs = rhs_expr.to_pattern();

    let pattern = pat_expr.to_pattern();

    println!("> Replace once {pat_expr}={rhs_expr} in {expr}:");

    for x in expr.replace(pattern).iter(rhs) {
        println!("\t{x}");
    }
}