Re: [F#] Seq.exists , что я делаю не так
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.09.09 08:37
Оценка: 4 (1) +1 -1
Здравствуйте, cadet354, Вы писали:

C>Доброго времени, взялся за изучение F#, так что вопрос новичка:

C>функция определяет простое ли число
C>
C>let  isPrime64 (value:int64) = //обязательно поставить скобки иначе будет считать что int64 - тип возвращаемого значения
C>    let isqrt64 n:int64 = n |> float |> sqrt |> int64 // определение верхней границы
C>    seq { for a in 2L .. isqrt64 value do yield a} |> Seq.exists(fun checker -> value % checker = 0L)|>not 
C>


А лучше написать так:

let  isPrime64 value =
    let isqrt64 n:int64 = n |> float |> sqrt |> int64 // определение верхней границы
    seq { for a in 2L .. isqrt64 value do yield a} 
    |> Seq.forall(fun checker -> value % checker <> 0L)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.