Документация к Math.NET Symbolics


Structure.collectDistinct

1: 
val collectDistinct: chooser : (Expression -> 'a option) -> x : Expression -> 'a list 
CompiledName: CollectDistinct

Описание

Действует аналогично функции collect, но возвращает выражения без повторений.


Пример

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
let getSymbol(Symbol(z)) = z

let getIdentifier = 
	function
	| Identifier x -> x |> getSymbol |> Some
	| _ -> None

"pi + e*2*sin(x+y) + x*y*z^3" 
|> Infix.parseOrUndefined
|> Structure.collectDistinct getIdentifier
|> List.iter(printfn "%A")

Вывод

1: 
2: 
3: 
"y"
"x"
"z"