ログイン
編集不可のページディスカッション情報添付ファイル
"chmod/diary/2011-05-26"の差分

MMA
3と4のリビジョン間の差分
2011-05-26 13:26:53時点のリビジョン3
サイズ: 1527
編集者: chmod
コメント:
2011-05-26 13:27:32時点のリビジョン4
サイズ: 1526
編集者: chmod
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 13: 行 13:
Q = ...fn・fn-1... f2・f1(Q0) Q = ... fn・fn-1 ... f2・f1(Q0)

日記

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

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

undo

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

全てのタスクは,状態 Q に対する fi の適用である.あるいは状態系 Q に対する メッセージ 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 スタックを全て破棄すべきである.

  • 等しかった場合,redo スタックから一つ取り出して破棄すべきである.

chmod/diary/2011-05-26 (最終更新日時 2011-05-26 14:05:58 更新者 chmod)