Извините за немой вопрос, но я немного озадачен.
Как повторить TryParse до успеха в F #?
В C# я могу идиоматический сделать следующее:
int result = 0;
while (!Int32.TryParse(someString, out result))
{
...
}
В F # У меня есть два варианта Try DoSomething узора.
Это либо
let (isSuccess, result) = Int32.TryParse someString
или
let result = ref 0
let isSuccess = Int32.TryParse("23", result)
я могу сделать while not Int32.TryParse("23", result) do ...
, но понятия не имеют ли то же достижимую с первым вариантом.
P.S. Конечно, хвостовая рекурсия также возможна здесь, но я заинтересован в использовании конструкции while
.
Я думаю, что вы уже ответили на свой вопрос :) Вы можете использовать второй вариант с 'в то время как 'или первый вариант с рекурсией ... –