私は単純な分類子を持っています:
struct Clf {
x: f64,
}
分類子は、観測値が より小さい場合は 0 を返しx
、大きい場合は 1 を返しますx
。
この分類子の呼び出し演算子を実装したいと思います。ただし、関数は float または vector を引数として取ることができる必要があります。ベクトルの場合、出力は入力ベクトルと同じサイズの 0 または 1 のベクトルです。
let c = Clf { x: 0 };
let v = vec![-1, 0.5, 1];
println!("{}", c(0.5)); // prints 1
println!("{}", c(v)); // prints [0, 1, 1]
Fn
この場合、どのように実装を書くことができますか?
impl Fn for Clf {
extern "rust-call" fn call(/*...*/) {
// ...
}
}