pub struct FunctionArgument { args : Vec, } impl FunctionArgument { pub fn new(args: Vec) -> Self { Self { args } } pub fn get(&self, i : usize) -> f64 { self.args[i] } } pub trait Function { fn eval(&self, args: FunctionArgument) -> f64; }