1:
|
val separateFactors : symbol : Expression -> x : Expression -> Expression * Expression
|
Группирует множители выражения на две части - в одной находятся те,
которые содержат в себе символ symbol, во второй - те, в которых он не встречается.
Части возвращаются в виде кортежа.
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
let x = symbol "x"
let expr = "4*(x+2)*cos(3*t)*sin(z+x)" |> Infix.parseOrUndefined
let f,s = Algebraic.separateFactors x expr
[f;s]
|> List.map(Infix.format)
|> List.iter(printfn "%s")
|
1:
2:
|
4*cos(3*t)
(2 + x)*sin(x + z)
|