Concurrent Clean : Finger Trees : 適用対象

基本的なところは大体実装できた。
作りながら思っていたのだけれど、これってどういうところに使うのがいいだろう?
参考にしている論文には

  • random-access sequences
  • max-priority queues
  • ordered sequences
  • interval trees

という例がある。
Finger Treeのよい所は、両端のどちらにもO(1)で要素を追加・削除できるところと、任意の場所で分割することがO(log N)でできるところ。
ただし、高階関数は効率が悪いので、specialを指定できないと、専用の実装に比較して不利になる。なので、一般的な使い方が予想できる所には、あらかじめspecial指定をいれておきたい。