這可能現在有點模糊,但我一直在想。要我與!知識,可以使構造值之前正在評估確定一個用於數據構造函數的參數: data Foo = Bar !Int !Float
我經常想,懶惰是一個偉大的事情。現在,當我通過消息來源時,我看到的更多的是比!更加頻繁的字段。 這有什麼好處,爲什麼我不應該讓它懶惰,因爲它是?
我有一段代碼,使用sequence從一個概率分佈重複抽樣。道德上,它是這樣的: sampleMean :: MonadRandom m => Int -> m Float -> m Float
sampleMean n dist = do
xs <- sequence (replicate n dist)
return (sum xs)
除了它有點複雜。我感興趣的實際代碼
我有這樣的代碼: divisors n = 1:[y|y<-[2..(n `div` 2)], n `mod` y == 0]
writeList l = do print "Start"
print l
的話,我想打電話給嚴格的參數的函數;我想: writeList $! (divisors 12345678)
和 (divisors 12345678) \`seq\
爲Control.Parallel.Strategies的源代碼(http://hackage.haskell.org/packages/archive/parallel/3.1.0.1/doc/html/src/Control-Parallel-Strategies.html#Eval)包含輸入eval定義爲: data Eval a = Done a
它具有下列單子實例: instance