lazy-sequences

    1熱度

    1回答

    我試圖將幾個LazySeq組合成一個地圖集合。 ("a" "b" "c" ...) ("x" "y" "z" ...) 成 ({:key1 "a" :key2 "x"} {:key1 "b" :key2 "y"} ...) 它保證了LazySeqs是相同的長度。什麼是這樣做的功能方式?

    1熱度

    2回答

    所以我有一個類在Smalltalk中創建LazyMatrix。該類只有1個實例變量,不能是除Object之外的任何其他類的子類。 LazyMatrix的實例變量被稱爲block,並且必須是back。我初始化LazyMatrix這樣的: initialize block:=[nil] 將會有一個方法,用於設置值 setRow:column:value: 此方法將通過設置新的塊爲[#(IJ值

    11熱度

    9回答

    我想編寫一個函數,它使用謂詞過濾一個序列,但結果還應該包含謂詞返回false的第一個項目。 的邏輯是這樣的,如果有F#中休息關鍵字 let myFilter predicate s = seq { for item in s do yield item if predicate item then break } 我試

    11熱度

    2回答

    想,我得到的項目大名單與IO工作時: as <- getLargeList 現在,我想申請fn :: a -> IO b到as: as <- getLargeList bs <- mapM fn as mapM有鍵入mapM :: Monad m => (a -> m b) -> [a] -> m [b],這就是我需要的類型匹配。但它會建立內存中的所有鏈,直到返回結果。我正在尋找模擬ma

    6熱度

    1回答

    我想明白以下代碼的執行: (def fibs (concat (lazy-seq [0 1]) (lazy-seq (map + fibs (rest fibs))))) 這是我所期望的執行看起來像 [0 1 : (map + [0 1] [1]) => 1 [0 1 1 : (map + [0 1 1] [1 1]) => 1 2 [0 1 1 1 2 : (map + [0

    1熱度

    1回答

    我的代碼 (define (add-ten s) (let ([f (lambda(s) ((cons 10 (car (s))) (cdr (s))))]) (f s))) 小號也能像權力 (define powers (letrec ([f (lambda (x) (cons x (lambda() (f (* x 2)))))]) (lambda () (f 2)))) My功

    5熱度

    2回答

    如何以恆定內存的方式將多個文件作爲一個ByteString懶惰地讀取? readFiles :: [FilePath] -> IO ByteString 我目前有以下實現,但就我從分析看出,以及我的理解,我會在內存中的文件的n-1結束。 readFiles = foldl1 joinIOStrings . map ByteString.readFile where joinIOStr

    2熱度

    2回答

    我想在Scala中使用foldLeft運算符連接一系列Traversable視圖,並且遇到了我不明白的類型差異錯誤。 我可以使用reduce連接像這樣的Traversable視圖的列表。 val xs = List(1,2,3,4).map(Traversable(_).view).reduce((a: TraversableView[Int, Traversable[_]], b: Traver

    4熱度

    2回答

    我有一個懶惰由find創建的文件名列表。我希望能夠延遲加載這些文件的元數據。這意味着,如果我take 10元素從metadata,它應該只搜索這10個文件的元數據。事實上,find完美地給你10個文件,如果你問他們沒有掛你的磁盤,而我的腳本搜索所有文件的元數據。 main = do files <- find always always/ metadata <- loadMeta

    4熱度

    3回答

    流映射定義整型我如何定義過的流映射整數方案: (define integers (stream-cons 1 (stream-map *something* *something*))