以下のクラスはコンパイルされません。関数をクラスではなくオブジェクトとして宣言すると、Functions.fac(3) を使用してメソッド fac を実行できます。このようなクラスを実行しようとすることは、scala で意味がありますか? class ではなく object に変更せずに実行されるように、以下のコードを変更するにはどうすればよいですか?
class Functions {
def fac(n : Int) = {
var r = 1;
for(i <- 1 to n) r = r * i;
r
}
def main(args:Array[String]) = {
Functions f = new Functions();
print(f.fac(3));
}
}