fold

    2熱度

    2回答

    我想做到這一點: 構造函數,在一個列表作爲參數,並在該列表中返回的最大偶數。 通過在Python 使用「摺疊」功能,爲此,我想這可能是沿着線的東西: def fold(f, v, l): for x in l: v = f(v, x) return v def biggest_even_number(xs): l = [i for i in xs if

    1熱度

    1回答

    我需要將函數應用於所有元素,但列表中的最後一個。基本上,我寫了一種玩具編譯器的,所以給出的算術項是這樣的: (+ 1 10) 我想獲得像 Plus(1, 10) 我設法得到如下: Plus(1, 10 ,) 通過使用地圖功能: (string-append "Plus (" (fold-right string-append "" (map (

    2熱度

    1回答

    我正在通過Example of the difference between List.fold and List.foldBack的解答試圖讓我的頭在fold和foldBack之間的區別。我明白現在申請順序的差異,但是我不明白副作用存在差異。 我用我的測試List.fold和List.foldBack。我的累加器函數基本上相當於::,因此累計順序很重要。我使用的累加器的功能如下: let f a

    0熱度

    4回答

    說我有一個項目列表: Seq(A, B, B, B, B, G, G, S, S, S, B, A, G) 而且我想找到所有的連鎖店,讓他們像這樣的順序: Seq(Seq(A), Seq(B, B, B, B), Seq(G, G), Seq(S, S, S), Seq(B), Seq(A), Seq(G)) 我想保持順序,並使用自定義比較函數來確定兩個對象是否「相同」。我在想摺疊或掃描可能是我需

    1熱度

    1回答

    scala的@tailrec註釋是否支持Option.fold方法? @tailrec def test(a: Int): Int = if (a > 10) Option(true).fold(test(a - 1))(_ => test(a - 2)) else -1 該代碼產生錯誤: Could not optimize @tailrec ann

    0熱度

    1回答

    下面的代碼是類的解決方案,而不是作業分配。鑑於抽象摺疊函數摺疊單元,你如何到達函數計數部門? n,x,z和y在計數部門中的作用是什麼? (define TEXT-SIZE 20) (define TEXT-COLOR "black") (define KIND-COLOR "red") ;; University organization hierarchy ;; Kind is on

    2熱度

    1回答

    我試圖用foldl實現max' max' :: (Ord a) => [a] -> a (可悲的是,LYAH似乎並不具備練習,所以我讓他們起來)。 所以,我可以寫一個lambda採取兩個整數並返回最大: (\x y -> if x > y then x else y) 2 3 ,我可以foldl列表使用它: foldl (\x y -> if x > y then x else y) 2

    1熱度

    2回答

    目的是在沒有遞歸或任何其他高階過程(map,andmap,apply等)的情況下只用一個foldr調用來編寫過濾器函數。 目前,我不過是用它被認爲是一個高階的程序 的目標是有 (filter positive? '(-1 2 3 4 -5 -6)) => '(2 3 4) 與foldr相似的單一調用andmap功能使用 (define (filter ps xs) (if (emp

    -1熱度

    1回答

    我想知道如何在Scheme /球拍中使用foldr,map,filter等將下面的顯式遞歸函數轉換成高階/抽象函數。 (define (insertNoDups f element lst) (cond[(empty? lst) (cons element lst)] [(f element (first lst)) lst] [else (cons (first

    11熱度

    3回答

    給定一個列表[Some 1; Some 2; Some 3]我想輸出Some 6。給定一個清單[Some 1; None]應該產生None。 但是我發現它比我想象的要乾淨一些。 我能想出的最好的是這個 let someNums = [Some 1; Some 2; Some 3] someNums |> List.reduce (fun st v -> Option.bind (fu