functor

    4熱度

    3回答

    下面的仿函數如何被修改爲lambda包裝? template<typename T> class F { T f; public: F(T t){ f = t; } T& operator()(){ return f; } }; int main() { int x = 5; F<int (*)

    18熱度

    1回答

    當您想從數據結構中提取元素時,必須給出索引。但索引的含義取決於數據結構本身。 class Indexed f where type Ix f (!) :: f a -> Ix f -> Maybe a -- indices can be out of bounds 例如... 元素在列表中有數字的位置。 data Nat = Z | S Nat instance Inde

    10熱度

    1回答

    讀過書Learn you a Haskell For Great Good,以及非常有幫助維基書的文章Haskell Category Theory這幫助我克服了普通類的錯誤of confusing category objects with the programming objects,我還是有以下問題: 爲什麼必須fmap地圖列表的每一個元素了嗎? 我喜歡它的確如此,我只是想理解這是如何在理

    3熱度

    2回答

    對於函數式編程而言,我還是不熟悉所有的標準操作符。事實上,它們的定義在許多語言中被允許是任意的,而且附近的源代碼中也沒有這樣的定義,即使這樣也可以使閱讀功能代碼時產生不必要的挑戰。 目前,我不知道<*>,因爲它發生在WebSharper.UI.Next文檔。 如果有一個地方列出了各種功能語言的各種操作符的所有常規定義,那將是一件好事。

    -1熱度

    1回答

    這是一個關於術語或概念(而不是C++概念)的問題。 如果我寫 std::for_each(my_start, my_end, f); 你會說我申請的功能,或仿,或函數對象f到範圍中的每個元件;和f的簽名或者是 void f(const decltype(*my_start)& x); ,或者它有一個運營商 void operator()(const decltype(*my_start)&

    0熱度

    1回答

    我有下面的代碼: class Variant { public: void init(); } void Variant::init() { int var 1; vector list; vector list2; tbb::parallel_for(tbb::blocked_range<std::size_t>(0, list.s

    0熱度

    1回答

    一個在http://haskellbook.com演習是寫一個函子實例 data EvilGoateeConst a b = GoatyConst b 我的嘗試是 instance Functor (EvilGoateeConst a) where fmap f (GoatyConst b) = GoatyConst b 最簡單的解決方法是隻在參數切換到類型構造,但我猜

    1熱度

    1回答

    所以假設我有一個像這樣的一系列自定義比較: template <typename T> class less_class { bool operator() (T obj, T value) const { return obj < value; } }; template <typename T> class greater_than { bo

    3熱度

    2回答

    Haskell新手。 所以(<$>)定義爲 (<$>) :: Functor f => (a -> b) -> f a -> f b 而且(<*>)被定義爲 (<*>) :: Applicative f => f (a -> b) -> f a -> f b 但我覺得Applicative是一個兩個概念: 一個將是一個函子的 而一個會是這樣的: ([email protected]>) :

    3熱度

    1回答

    當我經歷的lambda函數,我看到人們比較函子&拉姆達我遇到了一個聲明 用戶不必雜波他們與小函子代碼在一些訪問範圍。 我的疑問是 的是,在一些訪問範圍 有小函子的問題是不是好主意,有一個單一的功能(實際上是仿函數)&重用在多個文件在我們的項目中。 謝謝。