symbol!() { /* proc-macro */ }Expand description
Procedural macro for creating symbols with optional type specification
§Syntax
ⓘ
symbol!(x) // Scalar (default, commutative)
symbol!(A; matrix) // Matrix (noncommutative)
symbol!(p; operator) // Operator (noncommutative)
symbol!(i; quaternion) // Quaternion (noncommutative)
symbol!("name") // String literal for symbol name§Symbol Types
- scalar: Commutative symbols (default) - variables like x, y, z
- matrix: Noncommutative matrix symbols - AB ≠ BA
- operator: Noncommutative operator symbols - for quantum mechanics [x,p] ≠ 0
- quaternion: Noncommutative quaternion symbols - ij = k, ji = -k
§Examples
ⓘ
use mathhook_macros::symbol;
// Scalar symbols (commutative)
let x = symbol!(x);
let theta = symbol!(theta);
// Matrix symbols (noncommutative)
let A = symbol!(A; matrix);
let B = symbol!(B; matrix);
// Operator symbols (noncommutative)
let p = symbol!(p; operator);
let x_op = symbol!(x; operator);
// Quaternion symbols (noncommutative)
let i = symbol!(i; quaternion);
let j = symbol!(j; quaternion);