जब मैं "संशोधित राशि" संकलन («_sum_folds.hs») फ़ाइल:ट्रेस परतों में प्रसंस्करण के एकदम विपरीत दे सकते हैं
*--------------------------- [
import Debug.Trace
_sum =
foldl (\ acc x ->
trace (
show x
++ " - " ++ show acc
)
acc + x
)
0
*--------------------------- ]
[1 of 1] Compiling Main (_sum_folds .hs, interpreted)
Ok, modules loaded: Main.
... और यह करने के लिए लागू '[1..5 ] ', मैं मिलता है:
*Main > _sum ([1..5])
* 1 - 0
* 2 - 1
* 3 - 3
* 4 - 6
* 5 - 10
* 15
* it :: Integer
(एक के लिए आदेश' foldl 'प्रक्रिया ठीक है ...)
अगर मैं < ++ हटाने "-" दिखाने ++ एसीसी>, मैं :
*Main > _sum ([1..5])
* 5
* 4
* 3
* 2
* 1
* 15
* it :: Integer
... (हम केवल < ट्रेस (शो एक्स)> है): अंदर < [1..5]> ('एक्स के) तत्वों के प्रसंस्करण के आदेश किया गया है लगता है उलटा (यह एक 'foldl' है) ...!
इसका क्या अर्थ है?
में चित्र [इस उत्तर] (http://stackoverflow.com/a/2169743/2476735) मदद कर सकता है। –