https://twitter.com/kinaba のログ (twilog の方が便利です。)
@vivisuke あまり記憶していませんが、行を行頭を指すマーカーのリストで管理・ギャップバッファは各文字を指すマーカーを弱参照で記憶・ギャップを動かす範囲にマーカーがあったら更新、のような方針の話だったと思います (続 | |
@vivisuke 続) 文書化された説明としては、今探したところ Flexichain の "second layer" の実装 http://www.common-lisp.net/project/flexichain/download/StrandhVilleneuveMoore.pdf が見つかりました(このライブラリがこれを行の管理に使っているかどうかは知りませんが…) | |
@vivisuke それを O(1) にする方法についてはどなたかと議論した覚えがないので、多分さっきのはvivisukeさんの思ってた問題とは違う話なのだと思いますです。自分は自作のエディタではその行管理自体を配列等ではなくギャップバッファにしてました。 | |
@vivisuke あ、それでしたら最初の話題であっているかもしれません。行頭マーカーは、文字ギャップベクタ中の行頭のある論理indexではなく、物理index(ギャップより後ろにあるならギャップサイズ分ずれる)で表現します。すると編集時にも後ろの方の行の"値"は変わりません | |
@vivisuke そのかわり、編集がなくてもギャップの位置が動くと行頭マーカの"値"が変わりうるようになってしまいますが、それはギャップベクタ側でマーカーを全て覚えておいてギャップ動かすときについでに書き換える(ギャップ移動に必要なオーダと同じ分しかオーバーヘッドなし)など | |
@vivisuke ギャップが動くのは基本的には編集箇所が動く時だと思うので、その移動範囲に(のみ)更新をかけるという点で似ているところはありますね。弱参照使う方法は行頭に限らず、一般に前後の編集で不変なマーカー(std::listのイテレータみたいなの)を好き勝手使いたい (続 | |
@vivisuke 続) というための実装なので、行頭マーカのように一列にならんでひとまとめに管理できる場合にはオーバースペックなんだろうと思いました | |
http://twitpic.com/d4eqsz ベラルーシ料理を食べてきました。プロコン強くなりそう() | |
なんで最近脳内を Daydream Beliver が離れない https://t.co/DpFob5ab2u のか疑問だったのですが、やっとわかった、最寄りのセブンイレブンの店内BGMがずっとこれだ | |
ベラルーシ料理のお店に結構反応がある。ちなみに遠方から来たお客様と夕飯ご一緒するにあたって「僕毎日通ってるにも関わらず六本木のお店全然知らないのでどこか案ありませんか」などと聞いてこうなったのだった。おいしかった。しかし多少は自分の行動範囲にあるお食事処くらい把握しておくべきぽい | |
@tsukuno 社食は使ってないけど結局ものすごい速さで駅構内のラーメン屋とつけ麺屋に収束したあと最近はふつうに御茶ノ水まで帰ってきている | |
@tsukuno なにそれ知らん。どの辺? | |
@tatuyan_edson おすすめありますー?私はシンガポール料理というかチキンライス気に入ったのでちょくちょく食べに行っています | |
@tsukuno 三田製麺所のことだろうか。あんまり自分の好みではなかったので一回行ってやめた記憶だけが残っている | |
@tatuyan_edson おおーどちらも経験無いです。今度行ってみます! | |
@tatuyan_edson おおおーわざわざお店までご紹介ありがとうございます。IKEAはそうか、たしかにスウェーデン発祥でした | |
O(150^2) というような"誤用"、「実際に処理対象とする入力では上限が150であるようなパラメタxに関してO(x^2)」という意味とするのが便利だと思うのでフォーマルにするなら何かそういう修飾子を導入する方向を推したい O(ᚻ150^2) みたいなの | |
RT @qnighy: たぶんその"150"は変数名なんだよ | |
修飾子の例としてなんかてきとうに文字をUnicode表から探そうとしている間にqnighyさんに遙かに簡潔に言いたいことが表現されていた |