Вы можете назвать поля своего кортежа, связавшись с ними, например:
let Calc () =
// do something
if something
(false, 0)
else
(true, some value)
let (success, value) = Calc ()
вам не нужно давать имена полям кортежа в определении самого Calc
, вы можете сделать это в местах, где используется Calc
. Если вы предпочитаете давать имена результатов, рассмотрите возможность создания типа записи, который будет содержать:
type CalcData = { success: bool; value: int }
let Calc () =
if something then { success = false; value = 0 }
else { success = true, value = 123 }
let {success = success; value = value} = Calc ()
но похоже, что ваш Calc
может либо ничего не вернуть, либо получить какой-то результат, для которого был создан тип Option
:
let calc () = if something then None else Some 123
match calc () with
| None -> // if calc returned no value then do ....
| Some value -> // if calc returned a value then do ...