Я бы, вероятно, использовал подход Даниэля и просто присвоил бы значение, которое вы хотите напечатать символу, используя let
. В качестве альтернативы вы можете определить вариант printf
, который принимает некоторые аргументы и возвращает один из них. Я не уверен, есть ли общая схема, как это должно быть сделано - для вашего примера потребуется двухэлементный кортеж:
let mprintf fmt (a, b) =
Printf.kprintf (fun s -> printf "%s" s; (a, b)) fmt a b
Тогда вы можете написать:
...
|> SolveEquasion
|> mprintfn "Determinant = %f\nSolution = %A"
|> snd |> // ... more stuff with solution