F# で純粋関数型ランダムアクセスリスト


F# のリストは真面目にリストなのでランダムアクセスが遅いです。そこで高速にランダムアクセス可能なリストを実装しました。

元ネタは Okasaki 1995 の "Purely Functional Random-Access Lists" です。オリジナルに加えて F# の List との相互変換の関数を追加しています。

RList の型に Tree が含まれているのでちょっと見た目が良くないですね。モジュールには現れないので良いのですが,型の方でも上手く隠ぺいできると良いのですが[A]

脚注

  1. ちなみに Nemerle には標準でランダムアクセスリストがあります。 []