Rational 組込みオブジェクト

この章では組込み変数領域が初めから備えている Rational 組込みオブジェクトを定義する。

Rational オブジェクトは、スクリプトで扱われる有理数を表すオブジェクトである。

Rational のメンバ

prototype
Real.prototype を準プロトタイプとするオブジェクト。
name
文字列オブジェクト "Rational"
zero
有理数 0/1 を表す Rational オブジェクト
one
有理数 1/1 を表す Rational オブジェクト

Rational の内部メンバ

$prototype
Type.prototype

Rational の関数としての呼出し

Rational は関数として呼出し可能であり、関数として呼出されると次の処理を実行する:

引数が Rational オブジェクト一つの場合
[[引数]] を返す。
引数が Integer オブジェクト一つの場合
引数を Rational拡大変換し、その結果を値とする正常終了の結果を返す。
引数が Integer オブジェクト二つの場合
  1. 一つ目の引数の表す整数を a、二つ目の表す整数を b とする。
  2. b = 0 ならば、新しい OutOfRangeError のインスタンスを投げる。
  3. ab の最大公約数を g とする。
  4. b < 0 ならば、−g を改めて g とする。
  5. 整数 a / g を表す Integer オブジェクトを n とする。
  6. 整数 b / g を表す Integer オブジェクトを d とする。
  7. nnu プロパティの値とし、dde プロパティの値とする Rational オブジェクトを値とする正常終了の結果を返す。
引数が Float オブジェクト一つの場合
引数を Rational縮小変換し、その結果を値とする正常終了の結果を返す。
引数が文字列オブジェクト一つの場合
引数である文字列オブジェクトの内容を数値として解釈し、その値を表す Rational オブジェクトを値とする正常終了の結果を返してもよい。 文字列を数値として解釈しないまたはできない場合は、新しい ArgumentError のインスタンスを投げる。文字列の解釈の方法は実行環境に任せる。
上記以外の引数の場合
規定しない。

Rational オブジェクトのプロパティ

Rational オブジェクトは以下のプロパティを持つ。ただし、nude プロパティ以外のプロパティについては、 Rational.prototype やその準プロトタイプのプロパティが スクリプトの実行によって変更された場合は、この限りではない。

nu
Integer オブジェクト。この値は有理数の分子を表す。
このプロパティは不変である。
de
Integer オブジェクト。この値は有理数の分母を表す。この値は正であって、かつ nu プロパティの値が表す分子の値と互いに素でなければならない。
このプロパティは不変である。
toString メソッド
0-ary メソッド。Rational オブジェクトを @this 値としてこのメソッドを呼出すと、渡された @this 値を文字列オブジェクトに変換したものを結果として返す。 文字列への変換の方法は実行環境に任せる。
© 2006-2007 Magicant