jsで、継続サーバっぽい動作をする何か Backボタン対応版

id:Gemma:20070802 の続きです。YUIを使って実現しました。IEFirefoxで動作確認しました。
http://eva-lu-ator.net/~gemma/geocities/jscont/sum.html

こうなります。

// q0 :: unit -> Hash
function q0() {
  var a = {
    x: $('x').value
  };
  return $H(a); 
};

// q1 :: unit -> Hash
function q1() {
  var a = {
    y: $('y').value
  };
  return $H(a); 
};

// main :: unit -> IO ()
function main() {
  show($div($h1('? + ? = ?'),
	    'please input number',$br(),
	    $form({action: 'javascript:' + action(q0, function(query) {
	      var x = query['x'];
	      show($div($h1(x + ' + ? = ?'),
			'please input number',$br(),
			$form({action: 'javascript:' + action(q1, function(query) {
			  var y = query['y'];
			  show($h1(x + ' + ' + y + ' = ' + (parseInt(x,10) + parseInt(y,10))))
			    })},
			      $input({id: 'y'}),$br(),
			      $input({type: 'submit'}))));
	    })},
		  $input({id:'x'}),$br(),
		  $input({type: 'submit'}))));
};
<body>
<script>
YAHOO.util.History.register('kurl', '0', function(state) {
  do_action(Number(state));
} );

YAHOO.util.History.onLoadEvent.subscribe(function() {
  cont_table = new Array();
  q_table = new Array();
  action(function() {return $H({})}, main);
  do_action(0);
} );

YAHOO.util.History.initialize();
</script>
<div id="main">Please enable the javascript.</div>
</body>

関数q0,q1は、formタグのsubmitボタンを押したときにブラウザがどんなクエリパラメータを送るかを、javascriptでエミュレートしています。
イマイチなんで、もっといい方法があれば・・・。
q0,q1を自動生成するロジックを、DOMでformタグの中を検査してinputタグを見つけて云々すれば、書けそうですけど、それはちょっと。