if reelID = reelWeights.Count - 1
then Array.fold calc1 (0L,0) reelWeights.[reelID]
else Array.fold calc2 (0L,0) reelWeights.[reelID]
我试过用管道,它似乎慢下来一点点(不知道为什么):有什么办法可以简化这条线吗?
reelWeights.[reelID]
|> (if reelID = reelWeights.Count - 1 then Array.fold calc1 else Array.fold calc2) (0L,0)
,如果我做
let calc x = if x then calc1 else calc2
Array.fold (calc reelID = reelWeights.Count - 1) (0L,0) reelWeights.[reelID]
那么它看起来不错,在冗余成本检查循环中的条件。
第一种方法速度快,可读性强。你想如何简化它? – pad
@pad嗯,我认为可能有更好的方法,这样我就不必输入两次相同的参数。如果事实证明这是一个愚蠢的问题,我会尽快删除它。 – colinfang
无论如何,像这样的问题更适合[CodeReview.SE](http://codereview.stackexchange.com/)。 – ildjarn