lazy-evaluation

    1熱度

    1回答

    如果我們直接R中調用一個函數,懶惰的評價發生,使函數參數不計算,直到它們在函數體中遇到。這樣做的一個效果是在函數的開頭使用match.call()(比如lm這樣的模型修正器)會使用未經評估的函數參數捕獲該調用。因此,通過執行模型擬合函數,可以用promise來取代對函數的調用,而不是通過評估參數。這樣做的缺點是函數必須在未獲取參數的調用之前執行。 另一方面,函數R的call可用於創建對模型擬合函數

    1熱度

    1回答

    在Objective-C中,我該如何正確實現可能爲零的屬性的懶惰評估? 通常的做法將在下面進行說明,但對於可能爲零的屬性無法正常工作 - 它們的初始化將不會執行一次。 @interface LZClass: NSObject @property (strong, readonly) NSString * lazyProp; @end @implementation LZClass @s

    0熱度

    1回答

    我是一個Haskell新手。我想只讀N文本文件的字符到內存中。所以我寫了這個代碼: main :: IO() main = do inh <- openFile "input.txt" ReadMode transformedList <- Control.Monad.liftM (take 4) $ transformFileToList inh putStrLn

    1熱度

    1回答

    我試圖習慣f#查詢表達式。 首先,他們肯定渴望,這是因爲: let arr = [1; 2; 3] let q = query { for item in arr do select item; count };; val arr : int list = [1; 2; 3] val q : int = 3 我想重用的查詢,所以我儘量懶計算: let arr = ref [1; 2;

    1熱度

    1回答

    這是最簡潔的代碼版本顯示如下嗎?有什麼辦法可以縮短它嗎?任何語法糖?除了var,我知道var。 Lazy<OrderEventItem[]> orderEventItems = new Lazy<OrderEventItem[]>(delegate { return .......; });

    1熱度

    1回答

    在python中,我知道兩個懶惰的「容器」:生成器和<class 'map'>。 兩者都不是可以下標的。所以map(f, data)[1]和(f(x) for x in data)[1]將會失敗。 在python中是否有一個支持下標的惰性映射類? 如果沒有什麼是最接近的匹配? 我一直在尋找functools無濟於事(或我沒有發現它)。 基本上我尋找的是這樣的(但重新發明輪子應該是最後的選擇): c

    1熱度

    2回答

    我有一個有3個靜態成員的類。每個靜態成員不是線程安全的單例。 我需要爲它們的使用提供一個線程安全的實現。它可以嗎?或者我需要爲它們中的每一個提供線程安全的包裝?如果我應該 - 我如何使用Lazy<T>做到這一點? 附加問題:Measure()和Do() of SingeltonClass1/2/3不是線程安全的func1()線程安全嗎? public class MyLazySingleton

    11熱度

    1回答

    所以,我有一個3元組的迭代,它是懶惰生成的。我試圖找出如何將它變成3個迭代器,分別由元組的第一,第二和第三個元素組成。不過,我希望這樣做是懶惰的。 因此,例如,我希望[(1, 2, 3), (4, 5, 6), (7, 8, 9)]變成[1, 4, 7],[2, 5, 8],[3, 6, 9]。 (除了我想迭代列表以外) 標準zip(*data)成語不起作用,因爲參數解包會擴展整個迭代。 (您可以

    3熱度

    1回答

    我明白val和lazy val之間的差異基本。 雖然我遇到這個例子,但我很困惑。 以下代碼是正確的。它是一個流類型延遲值的遞歸。 def recursive(): { lazy val recurseValue: Stream[Int] = 1 #:: recurseValue.map(_+1) recurseValue } 如果我將lazy val更改爲val。它報告錯

    28熱度

    1回答

    在哈斯克爾,我可能會實現if這樣的: if' True x y = x if' False x y = y spin 0 =() spin n = spin (n - 1) 這行爲我怎麼想到: haskell> if' True (spin 1000000)() -- takes a moment haskell> if' False (spin 1000000)() -- immed