ログイン
編集不可のページディスカッション情報添付ファイル

2011-05-26 13:21:44時点のリビジョン1

メッセージを消す
chmod/diary/2011-05-26

MMA

日記

基本的に,自分は個人ページの下であっても編集ボタンをグレーアウトさせない方針で運用していたのだが,
日記については閉じることにした.

また,ACLがページごとにバラバラだったのをなるべく揃うようにした.

undo

情報工学実験においてundoを実装したいと思い,そもそもundoとはなんなのだろうかと考えていて思いついたこと.

全てのタスクは,状態 Q に対する fi の適用である.あるいは状態系に対する メッセージ fi の送信といったほうがより直感的かもしれない.

Q = ...fn・fn-1・... f2・f1(Q0)

そしてメッセージfiを送信するとき,fi^-1 を同時に生成し,fi^-1 をスタック [T_undo] に積めば良い.
そして,状態を戻したくなった場合,fi^-1 をスタックから取り出し,状態系にメッセージ送信すればよい.(そして fi^-1^-1 = fi をredo スタックに積む.)

これが undo なのだろう.

redo スタックは,適切なタイミングで削除されなければならない.(厳密には, 今送信した fi が redoスタックの一番上に乗っている fj と等しくなければ,redoスタックは全て破棄されるべきである.)