問題タブ [generic-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
698 参照

lisp - 学習しようとしている: オブジェクトの再配置、および LISP の汎用関数!

別の質問の結果として Practical common Lisp を読んでいます。

LISP がオブジェクトを管理する方法を見つけることができる第 16 章と第 17 章を読みました。しかし、Java がどのようにオブジェクトを管理するかを数年間考えた後、CLOS を使用して LISP でより大きなアーキテクチャを実装する方法を本当に理解できないようです。

そこで、単純な例よりも大きなアーキテクチャに適用される CLOS について 20 ~ 50 ページを読んでほしいとお願いします。たぶん、いくつかのブログ投稿や経験さえあります!

タイ

0 投票する
1 に答える
370 参照

.net - ジェネリック関数のデリゲートを作成する

私はいくつかの単体テストを書いており、フォームの関数がたくさんあります

このようなさまざまな引数で繰り返し呼び出しています

私がやりたいのは、Action デリゲートを受け取り、さまざまな引数すべてでデリゲートを呼び出すことができる関数を作成することです。それを行う方法はありますか?

答え:

MichaelCG のおかげで、私がやったことは次のとおりです。

私はまだもっと一般的な方法に興味がありますが、これは私の目的には機能的です。

0 投票する
3 に答える
438 参照

c++ - 単純なSTLジェネリック関数の記述に問題がある

イテレータを使用してジェネリック関数を作成する方法を独学で学んでいます。Hello Worldのステップとして、指定された範囲の平均を取り、値を返す関数を作成しました。

私の最初の質問はint、カウンターに使用しても大丈夫ですか、データが長すぎるとオーバーフローする可能性がありますか?

次のテストハーネスから関数を呼び出します。

これをコンパイルすると、次のエラーが発生します。

ありがとう!

0 投票する
1 に答える
1318 参照

haskell - Haskell にジェネリック Hashable 型クラスはありますか? (別名「派生 (ハッシュ可能)」)

(メカニズムhashを使用して) カスタム データ型に対して関数を自動的に生成できるように、汎用関数を作成した人はいますか? deriving何度か、私は次のようなボイラープレートを書きました。

これは自動的に生成できます。基本的な考え方は、データを追加するたびに、たとえばリストで素数を掛けることです。

要するに、私が書きたいのは

編集 1

皆様、大変参考になる回答をありがとうございました。時間があれば、演習としてジェネリック メソッドを追加してみます。今のところ (おそらく sclv は何を参照していたのでしょうか?)、もう少し良いコードを書くことができることに気付きました。

編集 2

ghc を使用すると、編集 1 でのタプルよりも、ランダムな素数による乗算の方がはるかにうまく機能します。Data.HashTable との競合は、95% (非常に悪い) から 36% になりました。コードはここにあります: [ http://pastebin.com/WD0Xp0T1 ] [ http://pastebin.com/Nd6cBy6G ]。

0 投票する
2 に答える
152 参照

c# - 「this」を使用して基本クラスから呼び出されたときのジェネリック関数パラメーターのパラメーター型は何ですか?

紛らわしい質問ですね。以下を考えると:

次のコードは、興味深い出力を生成します。

ただし、これは期待どおりに動作します。

最初のケースで T が BaseType として評価されるメカニズムを理解するのを手伝ってくれる人はいますか?

前もって感謝します!

0 投票する
3 に答える
255 参照

sql - 個別にインスタンス化された Func が述語はEntity FrameworkでSQLに変換されませんか?

データベースのクエリに使用している EF Code First Db コンテキストがあります。Aggregate Repository から sとしてクエリを渡すときにいくつかのパフォーマンスの問題に気付き、Func<Product, bool>さらに調査したところ、クエリが SQL クエリに変換されていないことが判明しました。

もう少し掘り下げた後、私は次のことを発見しました。

これは期待どおりに機能します。Where句を使用して、パラメータ化されたSQLを生成します。

================================================== ================

これも期待どおりに機能します。上記と同じSQLを生成します

================================================== ================

これは壊れています。SQL で where 句を生成するのではなく、すべてを返し、コードでフィルター処理します。

0 投票する
1 に答える
93 参照

.net - このようなジェネリック関数を使用することの悪影響はありますか?

ここでの私の質問は、このような一般的な関数を使用することの悪影響は何ですか? この関数の呼び出しは機能し、テスト コンソール モジュールでは完全に正常にコンパイルされます。これは厳密に型指定された関数ではなく、%100 悪い習慣であることはわかっています。しかし、それは機能します...完全に。このような関数の目的は、タイプに応じて特定の形式で挿入する必要がある文字列入力を処理することです。また、これに関するいくつかの他の質問をスタックオーバーフローで読み、(Of T) 関数の使用を指摘した提案や、そのようなバリエーションも読みました。なぜこのようにしないのですか?または、まったく何もないクラスや大量のコードを作成せずにこれを達成する別の簡単な方法はありますか。これも「エレガントな」処理方法ではないことはわかっているので、誰か提案があれば、私はすべて聞いています。ありがとうございました!:)

0 投票する
1 に答える
2007 参照

c# - C# ジェネリックとジェネリック制約

クラス B で派生させる予定の型パラメーター T を持つジェネリック抽象クラス A を作成しています。

A には、ジェネリック関数を持つクラス C のインスタンスであるデータ メンバー mX があります。この汎用関数 GetAllOfType() には、1 つの型パラメーター T があります。この型パラメーターは、3 番目のクラス D に制約されます。GetAllOfType() は、D の派生クラスのインスタンスを含む D のインスタンスのコンテナーを検索し、タイプ T のサブセット (したがって、D への制約)。

クラス D 自体には特定のデータ メンバー int mY はありませんが、E や F など、D の一部の派生クラスにはあります。

だからここで私の問題が始まります:

クラス B がクラス A を継承して実装するために使用するパラメーターの型は、D の派生クラスです。GetAllOfType() を介して列挙し、型 E、F、またはその他のメンバー mY にアクセスする関数 Foo をクラス A に記述しようとしています。 mY を持つメンバー。

ただし、問題は GetAllOfType() が制約されていることであり、クラス A も制約していないというエラーが発生します。

私はそのように A を制約しようとしました:

しかし、次の行に沿ってコンパイル時エラーが発生しています。

mY T' does not contain a definition for' と入力し、拡張メソッドmY' of typeT' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

また、複数の派生クラスに制約しようとしました:

しかし、次の行に沿ってエラーも発生しています。

クラス型制約 'F' は、他の制約より前にリストする必要があります。型制約を制約リストの先頭に移動することを検討してください

私はそれらを切り替えてみました:

同様に、結果は同じエラーになりますが、F が E に置き換わっています。

私が試みていることは可能ですか?私は何を間違っていますか?

繰り返しますが、クラス C、D、E、および F については何も変更できません。

0 投票する
1 に答える
1839 参照

r - 「show」は通常の S4 ジェネリック関数ですか?

data.frame から継承するクラスのメソッドを作成しようとしています。私はもともと data.frame から 'show' メソッドを継承することだけを望んでいましたが、自分で書いても問題ありません。クラスと「show」メソッドを次のように定義しました。

R コンソールに入力showすると、次のように出力されます。

パッケージ "methods" から定義された "show" の standardGeneric

したがって、自分で StandardGeneric() を使用してジェネリックに変換する必要はないようです。しかし、setMethod("show", signature(x="SCvec"), function(x) print(x))行を実行するとエラーが発生します

他のメソッドを定義するのと同じように、このメソッドを定義しました。このメソッド定義が機能しないのはなぜですか? 「show」は他のジェネリック関数とは異なりますか?

0 投票する
2 に答える
1096 参照

types - Common Lisp: 配列の長さに特化したジェネリック関数

私はジェネリック関数を使い始めたばかりで、これが可能かどうか疑問に思っています (私は本当にそう願っています!)。

長さの異なるベクトルを処理するための 3 つのパッケージを作成しました: vector2、vector3、およびvector4

各パッケージには、その長さのベクトルを処理する関数があります。

私のベクトルは型付き配列です(ゲームを書くための速度とメモリの使用のため)ので、vector3は次のとおりです。

現在、任意のベクター型を処理するための汎用関数を含む、vectorsというパッケージを作成しています。

したがって、vector:normalize をvector3に渡すと、 vector3などが返されます。

私はこれを試しました:

...質問 6083238で見たものに基づいていますが、明らかに、単純な単一浮動小数点配列にのみ特化しています。

高速であり、メモリを大量に消費しない必要があることを考えると、これを行うための最良の方法は何でしょうか?

事前に乾杯!