- 175 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 02:47:53.78 ID:CAQhwwqz.net]
- fnで定義される関数とクロージャって区別されてるのか。fnで定義できる関数は環境を持たないクロージャとして扱うことができるけど、逆は無理なのな。
fn map<S,T> (x:Vec<S>, f:fn(S) -> T) -> Vec<T> { ... } っていう高階関数はfnで定義される関数しか受け付けないが、 fn map<S,T,F:Fn(&S) -> T> (x:Vec<S>, f:F) -> Vec<T> { ... } は関数もクロージャも通す。 クロージャの定義を見ればコンパイル時に環境を持たないで済むか分かると思うんだけどなあ 関数 ∈ クロージャみたいな関係なんだから、関数で済むなら関数にして欲しい
|

|