Windows PowerShellでProject Euler(22)

Problem 15

Cはfoldを使って実装しています。答えが大きいので、初期値を1Lとします。ただし、この関数は第2引数が0だと正しい答えが出ません。

function fold($f, $init) {
    begin   { $x = $init }
    process { $x = & $f $x $_ }
    end     { $x }
}

function C($n, $m) {
    1..$m | fold { $args[0] * ($n - $args[1] + 1) / $args[1] } 1L
}

C 40 20