これを繰り返していくと、お望みの10進表現が得られるというわけです。計算量が必要になります。100万桁に対してはとてもじゃありませんが現実的な時間では動かないのです。実装はまさにそのようになっていました。文字列化しなければなりませんでした。高速に文字列化できるようになっています。典型的なのは元の値を必要なだけシフトして大きな整数として扱う方法です。掛けて切り捨てた整数として保持します。割ってやる必要があります。ところで、この割り算という操作がとてもコストが高いのです。比べ物にならないほど時間がかかります。割り算は避けたいのです。幸いなことにここでの割り算はシフトした数に限られます。割り算は多倍長整数を右にシフトするだけになります。掛けたものになります。これをそのまま出力してもよくわからないので、10進表記でもっともらしい数に変換する必要があります。ここの割り算も右シフトで行うことができます。ここで問題になるのが、シフトです。GHC6.4での右シフトは、ああ、なんという事でしょう。割る実装になっていたのです。整数をシフトする必要がありました。gmpのシフト関数を呼ぶ実装になっています。この改良は割りと最近だったでしょうか。現在の我々は晴れて安心してIntegerをシフトできるようになったわけです。安心しておすすめできます。みなさんもHaskellで多倍長計算、チャレンジしてみてください。Bootswatch.。