Hacker News new | past | comments | ask | show | jobs | submit login

reliably transform non-trivial functions that are accidentally O(n) in memory consumption due Haskell's laziness, to O(1) versions?

What you're describing is called strictness analysis. [0] I believe that attempting to solve it in general runs up against the halting problem. That being said, GHC does perform some strictness analysis when optimization flags are turned on. [1] The language itself also includes strictness annotations on the fields of data constructors. [2] Experienced Haskell programmers know how to use these to avoid allocating unnecessary thunks.

[0] https://en.wikipedia.org/wiki/Strictness_analysis

[1] https://wiki.haskell.org/Performance/Strictness#Strictness_a...

[2] https://wiki.haskell.org/Performance/Data_types#Strict_field...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: