命名したのは不本意であるが詮方無しか。変換しかできないが、他のコンテナへも適用可能にするなど改善の余地はありそうだ。いう型名の定義を必要とする仕様とした。いう独自のファンクタを作成した。型への変換処理である。行列累乗でフィボナッチ数列を解く目的いくつかの方法でフィボナッチ数列を求めるプログラムをScalaで実装してみる次の操作にかかる時間を測定し、比較する0番目〜100番目のフィボナッチ数を列挙する100,000番目のフィボナッチ数を求める時間計測用の処理このようなメソッドを予め用意した。処理中に例外が発生した場合は、その概要が出力される。行列を使わずに、Streamで実装されたもの。Scalaらしく、非常にエレガントなコードだ。}}呼び出しは以下のようにする。}}計測結果は以下の通り。計算時間で算出できることを利用して解く方法。数学的な解説はReferencesを参照。}}行列(Matrix)をBigIntの二次元配列で表現。Intの二次元配列からBigIntの二次元配列への暗黙の型変換メソッドを作成。累乗を求める部分では、内部関数として末尾再帰の最適化が行われるよう工夫した。呼び出し部分はこちら。}}計測結果は以下の通り。msOutOfMemoryが発生しない上に、処理時間そのものも大幅に短縮できた。使って並列化したバージョン。}}計測結果は以下の通り。ms100,000番目の算出はごく僅かに速くなったが、100番目までの列挙は逆に遅くなってしまった。エディタ設定まとめデフォルトから変更した内容のメモ。OFFフリーカーソル(キャレットを行末以降に移動可能)の無効化。