function-composition

    4熱度

    1回答

    let (++) f g x = f (g x) in let f x = x + 1 in let g x = x * 2 in (f++g) 1;; 上述表達是否正確? 在我看來,上面的代碼應該像定義f++g x = 2 * x + 1一樣。我對麼?

    3熱度

    2回答

    Erlang全新。我試圖爲函數組合定義一些函數,例如compose,juxt和pipe,但遇到了Erlang沒有(據我所知)可變參數這一事實,因此很難編寫一個可以工作的函數版本爲所有輸入。 到目前爲止,我的最好的辦法是硬編碼不同arities的功能達到一個合理的數量,以及提供一個版本,花費還有更大的,像這樣的列表: pipe (X, Fs) when is_list(Fs) -> lists:fo

    5熱度

    3回答

    所以,讓我們直接點。 :t (map.foldr) (map.foldr) :: (a1 -> a -> a) -> [a] -> [[a1] -> a] 什麼是[[a1] - > a]? 我真的想了解這個成分,所以我這樣做: -- map.foldr map.foldr :: (a1 -> a -> a) -> [a] -> [[a1] -> a] map :: (

    2熱度

    1回答

    我有一個元組列表,我需要通過添加兩個元素來擴展它,每個元素都來自一個列表。所以我有[(1, 2, 3)]和兩個迭代器it1 = (i for i in ['a1', 'a2'])和it2 = (i for i in in ['b1', 'b2'])。結果應該是[(1, 2, 3, 'a1', 'b1'), (1, 2, 3, 'a1', 'b2'), (1, 2, 3, 'a2', 'b1'),

    1熱度

    1回答

    假設我想要一個函數double adapter(double),是否有一種通用的方法來編寫它與boost::function<double(...)> functor來產生另一個boost::function<double(...)> functor2其中functor2(...) == adapter(functor(...))?特別是,如果有一種方法可以在不使用C++ 11的情況下執行此操作,

    0熱度

    1回答

    我目前正在開發一個帶有Play2的Web服務,並且我有一個操作組合問題。 這裏是我的Web服務提供的方法之一: @Authenticated(Secured.class) @BodyParser.Of(BodyParser.Json.class) public static Result createObject() { try { JsonNode json = req

    1熱度

    3回答

    有人能告訴我爲什麼在這個函數中使用「」 ? longestProductLen :: [(Barcode, Item)] -> Int longestProductLen = maximum . map (length . fst . snd)

    1熱度

    3回答

    我是Haskell的新手,我試圖在列表上執行一些遞歸函數,並且在遞歸完成後,我想從遞歸訪問輸出列表以執行附加操作。 例如,下面的函數接受一個值來保留一個列表,並且它返回一個只包含值的列表,將所有其他值拋棄。 我想要做的是瞭解如何在遞歸發生後訪問輸出列表,以便繼續操作。 喜歡的東西: //recursive function here //get length of output list fr

    1熱度

    2回答

    要從GHCi中的列表中去掉最後一個項目,我可以反轉列表,取出尾部,然後再將其反向。例如, reverse(tail(reverse([1,2,3,4]))) 由於有相當多的支架存在的,我想我會改變其使用功能組成代替。但是,當我嘗試這個時,我得到以下錯誤。 Prelude> reverse . tail. reverse [1,2,3,4] <interactive>:2:17:

    3熱度

    3回答

    我正在嘗試使用摺疊函數在Haskell中取整數的平方和。但是,我從GHCi得到一個神祕的錯誤。這裏是我的一行: ((^2) . foldl) (+) 0 [1..100] 我正在從GHCI得到的是: Prelude> ((^2) . foldl) (+) 0 [1..100] <interactive>:19:3: No instance for (Num (b0 -> [b0]