Я пытаюсь лениво создать последовательность, используя F #.
Последовательность определяется следующим образом:
n-й член последовательности
числа треугольников задаются как, tn =
½n (п + 1); поэтому первые десять треугольника
номера:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55,
...
Вот что у меня есть, но, похоже, это не сработает:
let tri_seq = 1.0 |> Seq.unfold (fun x -> match x with
| _ -> Some (x, 0.5*x*(x + 1.0)))
Большое спасибо, кто может помочь мне понять, как работает разворачивание. Спасибо
Редактировать: Я пометил первый ответ как правильный, но он не работает, однако я немного изменил его, и он работал.
let tri_seq = 1.0 |> Seq.unfold (fun x -> Some (0.5 * x * (x + 1.0),x + 1.0))