Project Euler 16

http://projecteuler.net/index.php?section=problems&id=16


ビット演算子は同じ記号を3つ重ねます。&&&, |||, ^^^, ~~~, <<<, >>> があります。
多倍長整数もビット演算できます。

let rec digits n = if n = 0I then []
                   else (digits (n / 10I)) @ [int (n % 10I)]
printfn "%d" (List.sum (digits (1I <<< 1000)))