fold

    3熱度

    2回答

    我想摺疊一個字符串,以便任何以@開頭的零出現被替換爲「k」。所以「a。@ 0.1.2.0」變成「a。@ k.1.2.0」。我怎麼做?到目前爲止,我的嘗試是 test = foldl(\x acc-> if((last acc) == "@" && x == "0" then acC++ "k" else acC++ x)) "" "[email protected]" 但是,它不起作用。 Fo

    1熱度

    2回答

    我該如何將整數列表壓扁成ocaml中的一個整數列表?該功能將如下所示。 [[1;2];[3;4;5];[];[6]] -> [1;2;3;4;5;6] 因爲這是家庭作業,它必須只使用fold_left或fold_right完成,並且不能使用「@」操作符,而不能使用遞歸。我知道累加器將成爲新列表的成員,但我不知道如何將原始列表的元素實際移動到累加器。任何提示將不勝感激。

    3熱度

    2回答

    這個問題haskell fold rose tree paths深入摺疊玫瑰樹到其路徑的代碼。我正在試驗無限的玫瑰樹,我發現所提供的解決方案不夠懶惰,無法在深度和廣度上無窮無盡的玫瑰樹上工作。 考慮玫瑰樹,如: data Rose a = Rose a [Rose a] deriving (Show, Functor) 這裏有一個有限的玫瑰樹: finiteTree = Rose "root"

    1熱度

    3回答

    我試圖通過列表中的索引實現自己的安全搜索元素。 我認爲,我的功能必須有此簽名: safe_search :: [a] -> Int -> Maybe a safe_search xs n = foldr iteration init_val xs n iteration = undefined init_val = undefined 我有問題,實現迭代。我認爲,它必須是這樣的: saf

    0熱度

    1回答

    有val mapList: List[Map[String, Int]]拼接地圖,我想要做的事,如: val map = mapList foldLeft (Map[String, Int]()) (_ ++ _) 或 val map = mapList foldLeft (Map[String, Int]()) ((m1: Map[String, Int], m2: Map[String,

    0熱度

    1回答

    #lang racket 我需要從2所列出創建一個列表 list1 => '(1 2 3) list2 => '(a b c) 的 (define (create-list l1 l2) ... ) 期望的結果是'((1 a) (2 b) (3 c)) 必須使用foldr並且不能使用遞歸。 我正在考慮運行一個計數器和使用list-ref, 有沒有更好的方法?

    0熱度

    1回答

    爲什麼摺疊上面的列表沒有幺半羣? length = foldr (\_ n -> 1+n) 0 是不是關聯的,並且具有中性元素0,這樣它應該是一個幺?

    1熱度

    1回答

    以下是有關作業問題。不尋找答案,尋找一個澄清 我應該找到第n加泰羅尼亞號碼是基於與我的問題無關的復發rel。 我的問題是: 的功能與foldl需要一個功能,蓄能器,和一個列表 當我申請與foldl,它看起來就像是 與foldl函數名initial_value_for_accumulator列表 我們教授在問題中說以下內容: 實現一個函數Catalan:int -> int其中,當給定一個整數n,計

    0熱度

    2回答

    我知道如何讓一個函數刪除所有重複項,但這不是我的問題。我想保留所有獨特的/沒有重複的東西。 這將是特別好,如果有人可以在他們的反應使用抽象/高階函數 所以這裏有幾個例子; '(1 1 1 2 2 2 3 4 5) - >'(3 4 5) '(1 1 1 2 2 2) - >空 '(2 3 4) - >'(2 3 4)

    4熱度

    1回答

    我代表演算哈斯克爾以下代數數據類型: data LExpr = Var String -- variable | App LExpr LExpr -- function application | Lam String LExpr -- Lambda abstraction deriving (Eq, Show) 我試圖建立與之相適應摺疊功能。我與一