Осторожно, спойлеры! Вы увидите решение для projecteuler.net-Problem 7.
Извините, если это дубликат, но я не смог найти здесь вопрос, задающий то же самое.
Я вычисляю последовательность чисел в функции и хочу вернуть n-е число.
let isPrime x =
{2..x/2}
|> Seq.exists (fun e -> x%e=0)
|> not
let PrimeNumber nth =
let unfolder a =
a
|> Seq.unfold (fun e -> Some(e, e+1))
|> Seq.find isPrime
|> fun e -> Some(e, e)
2
|> Seq.unfold unfolder
|> Seq.skip (nth-1)
|> Seq.head
let ans = PrimeNumber 10001
ans
всегда будет 2, но почему?
Когда я оцениваю последнее выражение в PrimeNumber
с помощью nth=10001
, возвращается правильный элемент. Я что-то упускаю?