###動作環境 スクリプト言語Luaのパッケージなので、Luaが必要です。 OSについては、私はDebianを使っていますが、WindowsやMacなどでも動くと思います。
まずLuaのインストールが必要です。 私が現在使っているのはバージョン5.3.2です。 Luaのウェブサイトからダウンロードし、ビルド、インストールしてください。 Debianの場合、aptでインストールすることもできますが、少し古いバージョンになります。
次に、このサイトからfraction.luaをダンロードして、パッケージを保管するフォルダに置きます。 Debianの場合は、/usr/local/share/lua/5.3 に保存すればOKです。
$ su
# cp fraction.lua /usr/local/share/lua/5.3
ただし、Luaのバージョンが5.3でない場合は、最後のフォルダ名を変えてください。
Luaのスクリプトの中で、
require("fraction")
として、ロード、実行してください。 以下、使い方のポイントです。
- f = Fraction.new(1,2) とすると、変数fに分数1/2のオブジェクトが代入されます。
- このオブジェクト同士に対し、四則演算ができます。
- つまり、f, g が1/2, 1/3のとき、f+gは5/6を表す分数オブジェクトになります。
- 分数オブジェクトに対して、それを文字列にするメソッドtostrがあります。f.tostr()でfの文字列表現が得られます
- 分数オブジェクトに対して、それを文字列(に直して)出力するメソッドshowがあります。f.show()でf(の文字列表現)が出力されます。
- 分数オブジェクトfに分数をセットするメソッドsetがあります。f.set(1,3)でfに1/3がセットされます。以前のfの値はクリアされます。
- 分数オブジェクトfに対して、その分数をゲットするメソッドgetがあります。fが2/3を表すとき、「a,b=f.get()」でa=2,b=3が代入されます。
使用例を示します
Fraction = require("fraction")
f = Fraction.new(1,2)
g = Fraction.new(1,3)
-- (で始まる文は、構文解析上の曖昧さがあるため、セミコロン(;)で始めるのが良い
;(f+g).show()
;(f-g).show()
;(f*g).show()
;(f/g).show()
これ(ファイル名 fraction_main.lua)を実行します。
$ lua fraction_main.lua
5/6
1/6
1/6
3/2
$
きちんと分数計算ができていることが分かります。