タグ付けされた質問 「function」

関数(プロシージャ、メソッド、サブルーチン、ルーチンとも呼ばれます)は、単一の特定のタスクを実行するためのコードの一部です。このタグは、関数の作成または呼び出しを具体的に含む質問に使用します。タスクを実行する関数の実装については、代わりに[アルゴリズム]またはタスク固有のタグを使用してください。

18
関数のJavaScript配列
var array_of_functions = [ first_function('a string'), second_function('a string'), third_function('a string'), forth_function('a string') ] array_of_functions[0]; 配列が作成されるときに配列内の各関数が実行されるため、これは意図したとおりに機能しません。 配列内の関数を実行する適切な方法は何ですか? array_of_functions[0]; // or, array_of_functions[1] etc. ありがとう!

6
行列またはデータフレームのすべての行に関数を適用する
私が2行2列の行列と、引数の1つとして2ベクトルを使用する関数があるとします。関数を行列の各行に適用して、nベクトルを取得したいと思います。Rでこれを行う方法? たとえば、3点の2D標準正規分布の密度を計算したいとします。 bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){ exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2)) } out <- rbind(c(1, 2), c(3, 4), c(5, 6)) 関数を各行に適用する方法はout? 指定する方法で関数へのポイント以外の引数に値を渡す方法は?
129 r  function  matrix  apply  sapply 


6
NumPy配列のすべてのセルでの関数の効率的な評価
与えられたnumpyのの配列A、適用する最速/最も効率的な方法何同じ機能を、Fに、すべてのセル? A(i、j)にf(A(i、j))を割り当てると仮定します。 関数fにはバイナリ出力がないため、マスク()演算は役に立ちません。 「すべてのセルを通る」「明白な」二重ループ反復は最適なソリューションですか?

14
C ++で例外指定子を使用する必要がありますか?
C ++では、例外指定子を使用して、関数が例外をスローする場合とスローしない場合があることを指定できます。例えば: void foo() throw(); // guaranteed not to throw an exception void bar() throw(int); // may throw an exception of type int void baz() throw(...); // may throw an exception of some unspecified type 次の理由により、実際にそれらを使用することに疑問があります。 コンパイラーは、厳密には例外指定子を強制しません。そのため、利点は大きくありません。理想的には、コンパイルエラーが発生するようにします。 関数が例外指定子に違反している場合、標準的な動作はプログラムを終了することだと思います。 VS.Netでは、throw(X)をthrow(...)として扱うため、標準への準拠は強くありません。 例外指定子を使用する必要があると思いますか? 「はい」または「いいえ」で答え、答えを正当化するいくつかの理由を提供してください。


15
SQL Serverデータベースで文字列を検索するにはどうすればよいですか?
それが可能かどうかはわかりますが、方法はわかりません。 特定の文字列に関するすべての言及について、SQL Serverデータベースを検索する必要があります。 例:すべてのテーブル、ビュー、関数、ストアドプロシージャなどを検索して、文字列 "tblEmployes"(テーブル内のデータではない)を探します。 これが必要な理由の1つは、作成された余分なデータテーブルをいくつか削除したいのですが、プロシージャまたは関数のどこかで使用されているのではないかと心配です。

6
操作がない場合のJavaScriptの規則は何ですか?
操作がない場合のJavaScriptの規則は何ですか?Python passコマンドのように。 1つのオプションは、単に空の関数です。 function() {} jQueryは$.noop()、上記の空の関数を単に呼び出すを提供します。 falseまたはの値を単に入力することは受け入れられますか0? コンテキストでは、これらはすべてChromeでエラーをスローすることなく機能します。 var a = 2; (a === 1) ? alert(1) : function() {}; (a === 1) ? alert(1) : $.noop(); (a === 1) ? alert(1) : false; (a === 1) ? alert(1) : 0; 編集:多くの人が「これを行わないでください。コード構造を変更してください!」と答えました。これは、誰かがブラウザを盗聴する方法を尋ねた投稿を思い出します。彼は「それをしないでください!悪だ」と言って大量の投稿を受け取りましたが、ブラウザを盗聴する方法は誰にも教えられていません。これはコードレビューではありません。変更できないレガシーコードを処理していて、関数を渡さないとエラーが発生することを想像してみてください。または、単純に、それは顧客が望んでいる方法であり、彼らは私に支払っています。だから、丁重に、してください質問に答える:JavaScriptで「ノーオペレーション」関数を指定するための最良の方法は何ですか? EDIT2:これらの1つはどうですか? true; false; 0; 1; null;

8
MATLAB関数の一部の戻り値をエレガントに無視する方法は?
それn-1より前のすべての戻り値に対してダミー変数を作成する必要なしに、関数から「n番目」の戻り値を取得することは可能ですか? たとえば、MATLABに次の関数があるとします。 function [a,b,c,d] = func() a = 1; b = 2; c = 3; d = 4; ここで、3番目の戻り値のみに関心があると仮定します。これは、ダミー変数を1つ作成することで実現できます。 [dummy, dummy, variableThatIWillUse, dummy] = func; clear dummy; しかし、これはちょっと醜いと思います。次のようなことができると思いますが、できません。 [_, _, variableThatIWillUse, _] = func; [, , variableThatIWillUse, ] = func; variableThatIWillUse = func(3); variableThatIWillUse = func()(3); これを行うエレガントな方法はありますか? これまでのところ、最善の解決策は、単にvariableThatIWillUseダミー変数として使用することです。これにより、ワークスペースを汚染する(またはクリアする必要がある)実際のダミー変数を作成する必要がなくなります。要するに、解決策はvariableThatIWillUse、興味深いものまでのすべての戻り値にfor を使用することです。後の戻り値は単に無視できます。 [variableThatIWillUse, …


1
無名関数のPHP変数
私はPHPの匿名関数をいじってみましたが、それらがそれらの外部の変数に到達しないようです。この問題を回避する方法はありますか? 例: $variable = "nothing"; functionName($someArgument, function() { $variable = "something"; }); echo $variable; //output: "nothing" これは「何も」を出力しません。無名関数がアクセスできる方法はあります$variableか?

6
Pythonでは、メソッドではなく関数をいつ使用すればよいですか?
PythonのZenは、物事を行う方法は1つだけである必要があると述べています。 ささいな例であるChessBoardオブジェクトを見てみましょう。理事会でキングの合法的な動きをすべて利用できるようにする方法が必要だとしましょう。ChessBoard.get_king_moves()またはget_king_moves(chess_board)を記述しますか? これが私が調べたいくつかの関連する質問です: なぜPythonは「マジックメソッド」を使用するのですか? Python文字列に文字列長メソッドがない理由はありますか? 私が得た答えはほとんど決定的ではありませんでした: なぜPythonは一部の機能(list.index()など)にメソッドを使用し、他の機能(たとえばlen(list))に関数を使用するのですか? 主な理由は歴史です。関数は、タイプのグループに対して一般的であり、メソッドをまったく持たないオブジェクト(タプルなど)でも機能することを目的とした操作に使用されました。Pythonの関数機能(map()、apply()など)を使用するときに、アモルファスオブジェクトのコレクションに簡単に適用できる関数があると便利です。 実際、組み込み関数としてlen()、max()、min()を実装する方が、実際には、各型のメソッドとして実装するよりもコードが少なくて済みます。個々のケースについて疑問を投げかけることはできますが、それはPythonの一部であり、そのような根本的な変更を今行うには遅すぎます。関数は、大規模なコード破損を回避するために残しておく必要があります。 興味深いことですが、上記では実際に採用する戦略についてはあまり触れていません。 これが理由の1つです。カスタムメソッドを使用すると、開発者はgetLength()、length()、getlength()などの異なるメソッド名を自由に選択できます。Pythonは厳密な命名を強制するため、共通の関数len()を使用できます。 もう少し面白い。私の見解では、関数はある意味では、インターフェースのPythonicバージョンです。 最後に、グイド自身から: 能力/インターフェースについて話すと、「ローグ」の特別なメソッド名のいくつかについて考えさせられました。言語リファレンスでは、「クラスは、特殊な名前でメソッドを定義することにより、特殊な構文(算術演算や添え字やスライスなど)によって呼び出される特定の演算を実装できる」と述べています。しかし、構文のサポートではなく、組み込み関数の利点のために提供されているように見える、__len__またはのような特別な名前を持つこれらすべてのメソッドが__unicode__あります。それはので、おそらく、インターフェイスベースのPythonで、これらの方法は、ABCの定期的な名前のメソッドに変わるでしょう __len__になるだろう class container: ... def len(self): raise NotImplemented それについてもう少し考えますが、すべての構文操作が特定のABCで適切な通常の名前のメソッドを呼び出さ<object.lessthancomparable.lessthanないのはなぜかわかりません。「」は、例えば、あろうおそらく呼び出し「(あるいは「」「)。したがって、もう1つの利点は、Pythonをこの複雑な名前の奇妙さから引き離すことができることです。これは、HCIの改善のようです。 うーん。同意するかどうかはわかりません(図:-)。 最初に説明したいのが「Pythonの理論的根拠」です。 まず、HCIの理由から、x.len()ではなくlen(x)を選択しました(def __len__()かなり後になりました)。実際には2つの理由があり、どちらもHCIです。 (a)一部の操作では、接頭表記は単にpostfixよりも読みやすくなります-接頭辞(およびインフィックス!)の操作は数学において長い伝統があり、ビジュアルが問題について数学者が考える助けとなる表記法を好みます。式を次のようx*(a+b)に書き換える簡単さを比較してくださいx*a + x*b生OO表記を使用して同じことをやっての不器用さにします。 (b)何かの長さを要求していることlen(x)を知っているというコードを読んだとき。これは2つのことを教えてくれます。結果は整数であり、引数はなんらかのコンテナです。逆に、私がを読んだときx.len()、それがxインターフェイスを実装しているコンテナ、または標準を持つクラスから継承しているコンテナの一種であることをすでに知っている必要がありますlen()。マッピングを実装していないクラスにget()or keys() メソッドがある場合、またはファイルではないものにwrite()ください。 同じことを別の言い方をすると、「len」は組み込みの操作と見なされ ます。それを失うのは嫌だ。あなたがそれを意味していたのかどうかははっきりしませんが、 'def len(self):...'は通常の方法に降格したいようです。私はそのことを強く-1としています。 説明することを約束したPythonの理論的根拠の2番目のビットは、__special__単に見るだけでなく、 特別な方法を選んだ理由specialです。クラスがオーバーライドする可能性のある多くの操作、一部の標準(__add__またはまたは__getitem__)、一部の標準ではない(たとえば、ピクルス__reduce__は長い間Cコードでまったくサポートされていなかった)を予期していました。これらの特別な操作で通常のメソッド名を使用したくありませんでした。そのため、既存のクラス、またはすべての特別なメソッドのエンサイクロペディックメモリを持たないユーザーが作成したクラスは、実装するつもりのない操作を誤って定義してしまう可能性があります。 、悲惨な結果をもたらす可能性があります。IvanKrstićはこれをより簡潔に彼のメッセージで説明しました。メッセージは私がこれをすべて書いた後に届きました。 ---Guido van Rossum(ホームページ:http ://www.python.org/~guido/ ) これについての私の理解は、特定のケースでは、プレフィックス表記がより意味をなす(つまり、Duck.quackがquack(Duck)よりも言語の観点から理解できる)ことであり、関数も「インターフェース」を許可します。 そのような場合、私の推測は、Guidoの最初の点のみに基づいてget_king_movesを実装することです。しかし、それでも、同様のプッシュメソッドとポップメソッドを使用してスタッククラスとキュークラスを実装するなど、関数またはメソッドのどちらであるかについて、未解決の問題が数多く残っています。(私は本当にプッシュポップインターフェイスに信号を送りたいので、ここでは関数を推測します) TLDR:関数とメソッドのどちらを使用するかを決定するための戦略を誰かが説明できるか?

10
これは純粋な関数ですか?
ほとんどのソースは、純粋な関数を次の2つのプロパティを持つものとして定義します。 同じ引数の場合、その戻り値は同じです。 その評価には副作用はありません。 それは私が心配する最初の状態です。ほとんどの場合、判断は簡単です。次のJavaScript関数を検討してください(この記事に示すように) 純粋: const add = (x, y) => x + y; add(2, 4); // 6 不純: let x = 2; const add = (y) => { return x += y; }; add(4); // x === 6 (the first time) add(4); // x === 10 (the second time) …

12
Scalaでメソッドをプロファイルする方法は?
Scalaメソッド呼び出しをプロファイリングする標準的な方法は何ですか? 必要なのは、タイマーを開始および停止するために使用できるメソッドのフックです。 Javaでは、アスペクトプログラミング(aspectJ)を使用して、プロファイルするメソッドを定義し、バイトコードを注入して同じことを実現します。 Scalaで、プロセスの静的型付けを失うことなく、関数の前後に呼び出される一連の関数を定義できるより自然な方法はありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.