タグ

2007年3月7日のブックマーク (2件)

  • Rhino 1.6R1 変更ログ

    Rhino の変更ログ Rhino 1.6R1、2004-11-29 にリリース リリース概要 Rhino 1.6R1 は、Rhino の新しいメジャーリリースです。 ECMA 357 standard としての ECMAScript for XML (E4X) をサポートします。 E4X は既存のコード・ベースに影響を与えずに、JavaScript へネイティブ XML サポートを加える、言語拡張セットです。 E4X example に、様々な E4X コンストラクションと、JavaScript コード内でのそれらの使用法が示されています。 このバージョンの Rhino は、公開 API だけを使用して、 下にあるドキュメントのような推奨されないクラスは使っていない場合、 現在 環境に組み込んでいるものと、バイナリ互換であるべきです。 何か互換性に関する問題があれば、

    amachang
    amachang 2007/03/07
    Rhino は末尾再帰の最適化とか、継続とかできる
  • 末尾再帰 - Wikipedia

    一般に再帰呼び出しが可能な言語では、サブルーチン呼び出しのたびにスタックに呼び出し先から戻るための情報を保存する。そのため再帰が深くなりすぎるとスタックオーバーフローでプログラムが異常終了する。 そのような場合、次のようにループに変換して回避する。 { 変換前 } function F (a1:T1, a2:T2, ..., an:Tn) : T0 begin P ; return func (b1, b2, ..., bn) ; end ; { 変換後 } function F (a1:T1, a2:T2, ..., an:Tn) : T0 begin loop P ; a1 := b1 ; a2 := b2 ; : an := bn ; end loop ; end ; { Ti は型、P は手続き、bi は値または a1~an に対する副作用を伴わない式である。 それ以外の識別子は変

    amachang
    amachang 2007/03/07
    末尾再帰をループにする最適化