我有一個主題叫做嚴謹與懶惰評價要學習功能與邏輯語言。在搜索時,我可以找到與Haskell相關的主題。我不知道那是什麼。我所瞭解的編程語言是C,C++,java。一般人可以解釋一下嚴格和懶惰的評估是什麼意思。嚴格與懶惰評價之間有什麼區別
1
A
回答
0
懶惰評估等待計算任何東西,直到它需要。這樣可以節省時間,如果存儲值並僅在特定情況下使用。我相信嚴格意味着他們馬上被計算出來。
0
有關除Haskell外的其他語言的惰性評估的定義和示例,請參見Wikipedia page。
0
使用懶惰評估時,只需要在需要時計算一個值。一個簡單的例子就是當我們有一個if語句時。
if(B1 OR B2)....//do something
假設B1爲真,我們從左到右評估。我們知道B1是真實的,所以不需要評估B2,因爲OR運算符的定義。現在假設B1是假的,現在我們必須知道if語句的真值取決於B2,所以我們必須評估B2。相同的比喻可以用於其他邏輯運算符。嚴格(或貪婪)評估計算B1和B2的值。我們可以進一步利用懶惰評估。假設我們有以下代碼:
some_value = map (+1) some_list //increases all values in the list by 1
我們還可以對上述語句使用懶惰評估。我們可以在我們的代碼中的某個地方定義它。如果我們從不在代碼中使用some_value,則不需要計算它。如果我們在程序中進一步調用它,它會計算並存儲在內存中,所以我們不需要每次需要some_value的值時計算它。無論我們是否使用它的價值,嚴格的評估都會強制計算。懶惰評估和嚴格評估都有各自的優缺點。
相關問題
- 1. 懶惰加載和懶惰評估有什麼區別?
- 2. 懶惰評價不那麼懶惰?
- 3. 懶惰評價
- 4. 懶惰評價Clojure發生了什麼
- 5. 懶惰的評價
- 6. 懶惰評價python
- 7. 懶惰的評價
- 8. 懶惰var和let之間的區別
- 9. 確認懶惰評價
- 10. 爲什麼Haskell中的懶惰評價「不懶」?
- 11. 映射嚴格與懶惰函數
- 12. F#懶惰評估與非懶惰
- 13. 懶惰的評估和嚴格的評估Haskell
- 14. 數據和新類型之間的懶惰/嚴格
- 15. 懶惰,貪婪和佔有量詞有什麼區別?
- 16. 「嚴格」和「鬆散」行爲之間的區別是什麼?
- 17. DesiredCapabilities與RequiredCapabilities之間有什麼區別?
- 18. Console.WriteLine()與Debug.WriteLine()之間有什麼區別?
- 19. gets.chomp()與STDIN.gets.chomp()之間有什麼區別?
- 20. 這爲什麼會打敗Haskell的懶惰評價?
- 21. 在ocaml中的懶惰評價
- 22. Python懶惰布爾評價出錯了?
- 23. 關閉django中的懶惰評價
- 24. IO Monad懶惰地評價嗎?
- 25. 參數爲懶惰的評價
- 26. Clojure的,懶惰的評價問題
- 27. 懶惰評價並行查詢
- 28. 瞭解哈斯克爾懶惰評價
- 29. JavaScript和PHP之間的前瞻斷言的懶惰區別
- 30. 懶惰<T>和LazyInit之間的區別<T>