Я хотел бы сделать applyAndTruncate
скрытым от внешнего мира (то есть из чего-либо вне модуля Scoring
), поскольку я действительно использую его только как основу для bestKPercent
и worstKPercent
. Можно ли скрыть это? Если нет, то какой способ F # ish выполнить то, что я хочу сделать?
module Scoring
let applyAndTruncate f percentage (scoredPopulation:ScoredPopulation) : ScoredPopulation =
if (percentage < 0.0 || percentage > 1.0) then
failwith "percentage must be a number between 0.0 and 1.0"
let k = (int)(percentage * (double)(Array.length scoredPopulation))
scoredPopulation
|> f
|> Seq.truncate k
|> Seq.toArray
let bestKPercent = applyAndTruncate sortByScoreDesc
let worstKPercent = applyAndTruncate sortByScoreAsc