80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/exocrypto/crypto_calc.rb', line 80
def self.apply_fun(f, args)
args_prime = args.map { |i| BigDecimal(i) }
lambdas = {
'fst' => lambda { |args| args[0] },
'1/fst' => lambda { |args| 1.0 / args[0] },
'fst,snd' => lambda { |args| [args[0], args[1]] },
'fst*snd' => lambda { |args| args[0] * args[1] },
'fst/snd' => lambda { |args| args[0] / args[1] },
'snd/fst' => lambda { |args| args[1] / args[0] },
'1/(fst*snd)' => lambda { |args| 1.0 / (args[0] * args[1]) },
}
lambdas[f].call(args_prime)
end
|