2017-12-07 4 views
1

私は関数クロージャによって生成された関数を直接カーブする方法は?

curve(pow(2),-2,2) 

pow <- function(n) { 
    function(x){ x^n } 
} 

私は曲線それはすべてがうまく、以下のコードを使用し

f <- pow(2) 
curve(f,-2,2) 

しかし、ときに私は曲線それが好きカーブへの電力機能をしようとしています"'expr'は関数でなければならないか、 'x' 'を含む呼び出しや式でなければならない。そして、一時変数なしでカーブする方法を知りたい?

答えて

3

curve()のドキュメントで使用

curve(pow(2)(x),-2,2) 

、それは

関数の名前、またはコールまたはオブジェクトに評価しますxの関数として書かれた表現を期待しますxと同じ長さの

従ってfは関数の名前ですので、それが機能します。 curve(f(x),-2,2)とも呼ばれる可能性があります。しかし、pow(2)は関数の名前ではなく、関数を返す関数呼び出しです。しかし、curveが関数呼び出しを見たときには、その呼び出しがxの関数として記述されていることが予想されます。したがって、(x)部分を追加することによって、curve()が理解する関数呼び出しに変換します。

関連する問題