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


6
テンプレート引数として渡される関数
C ++テンプレート関数を引数として渡すことに関するルールを探しています。 これは、次の例に示すように、C ++でサポートされています。 #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); std::cout << "Result is " << temp << std::endl; } int main() { doOperation<add1>(); doOperation<add2>(); } ただし、この手法について学ぶことは困難です。「テンプレート引数としての関数」のグーグルはあまり役に立ちません。そして、古典的なC ++テンプレートの完全ガイドでは、驚くべきことに、それについても説明していません(少なくとも私の検索では)。 私が持っている質問は、これが有効なC ++(または単に広くサポートされている拡張機能)かどうかです。 また、この種のテンプレート呼び出し中に、同じシグネチャを持つファンクターを明示的な関数と交換可能に使用できるようにする方法はありますか? 上記のプログラムでは、少なくともVisual …

17
関数型プログラミングでは、ファンクタとは何ですか?
関数型プログラミングに関するさまざまな記事を読んでいる間、「Functor」という用語に何度か遭遇しましたが、著者は通常、読者がこの用語をすでに理解していると想定しています。Webを見回すと、過度に技術的な説明(Wikipediaの記事を参照)または信じられないほどあいまいな説明(このocamlチュートリアルWebサイトの Functorsのセクションを参照)が提供されています。 誰かが親切に用語を定義し、その使用法を説明し、おそらくファンクターがどのように作成され使用されるかの例を提供できますか? 編集:私はこの用語の背後にある理論に興味がありますが、その概念の実装と実際の使用には興味がありません。 編集2:いくつかのクロスターミノリジーが起こっているように見えます:私は特にC ++の関数オブジェクトではなく、関数型プログラミングのファンクターに言及しています。

5
Functor / Functor / Applicative / Monadの良い例は?
型クラスXが何であるかを誰かに説明しながら、正確にXであるデータ構造の良い例を見つけるのに苦労しています。 だから、私は次の例を要求します: Functorではない型コンストラクター。 Functorであるが、Applicativeではない型コンストラクター。 Applicativeですがモナドではない型コンストラクタです。 モナドである型コンストラクタ。 どこにでもモナドの例はたくさんあると思いますが、前の例とある程度の関係があるモナドの良い例は、絵を完成させることができます。 特定の型クラスに属するために重要な点のみが異なる、互いに類似する例を探します。 アローの例をこの階層のどこかに忍び込むことができたなら(それはApplicativeとMonadの間ですか?)、それも素晴らしいでしょう!

5
F#のOCamlへの変更[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 この質問を改善する F#はOCamlから派生していますが、欠落または追加されている主要なアイテムは何ですか?具体的には、OCamlの学習に利用できるリソースがF#を学びたい人にも役立つかどうかに興味があります。
126 f#  ocaml  functor 


11
別の関数内で関数を定義できないのはなぜですか?
これはラムダ関数の質問ではありません。ラムダを変数に割り当てることができることを私は知っています。 コード内で関数を宣言することはできるが、定義することはできないというのはどういう意味ですか? 例えば: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar; } // This is legal, but why would I want this? int two(int bar); // This gets the job done but man it's complicated class three{ int m_iBar; public: …

3
すべての固定サイズのコンテナーは強力なモノイドのファンクターですか、その逆ですか?
Applicative型クラスは、型指定された機能のカテゴリにデカルトmonoidal構造を保持ずさんmonoidalファンクタを表します。 言い換えると(,)、モノイド構造を形成する正準同型が見られる場合: -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, b), c) lunit_fwd :: ((), a) -> a lunit_bwd :: a -> ((), a) runit_fwd :: (a, ()) -> a runit_bwd :: a -> (a, …

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