Итак, пытаясь избежать изменчивых переменных, я придумал следующий код повторной логики, который кажется уродливым:
let result = TryConnect()
match result with
| ErrorConnecting ->
SetupConnectionParameters()
let resultAgain = TryConnect()
match resultAgain with
| ErrorConnecting ->
Console.Error.WriteLine("Setup failed!")
Environment.Exit(7)
| Success(value) -> PerformOperations(value)
| Success(value) -> PerformOperations(value)
Есть ли способ уменьшить некоторое дублирование здесь? (Помните, нет mutable
vars.)
Спасибо!