Re:It never makes sense to use foldl on lists in Haskell (2019)
by 08-15 on Saturday March 21, 2020 @05:11AM
(#22645426)
Foldl' doesn't leak, but it sure looks like it does, if you think the folded function is strict in the accumulator argument, but isn't.
For example, this attempt at computing the average of a list
leaks, because during the recursion, there is no reason to scrutinize the intermediate pairs. This version is fine:
[ Parent
| on HN ]
Re:It never makes sense to use foldl on lists in Haskell (2019)
by dependenttypes on Saturday March 21, 2020 @05:24AM
(#22645457)
{-# LANGUAGE Strict, StrictData, BangPatterns #-} should imply the !, right?
Re:It never makes sense to use foldl on lists in Haskell (2019)
by 08-15 on Saturday March 21, 2020 @05:46AM
(#22645523)
I don't think it does. 'Strict' doesn't add an implicit ! to nested patterns (so (s,l) becomes !(s,l), not (!s,!l)), and 'StrictData' doesn't change anything about the tuple, which comes from a different module. (Disclaimer: I haven't actually used 'Strict', this is my interpretation of the user guide.)