Haskell Lazy Evaluation

Discussions center on the pros and cons of Haskell's default lazy evaluation, including performance issues like space leaks and thunks, comparisons to strict languages, and whether it should be optional or fixed.

📉 Falling 0.3x Programming Languages
2,219
Comments
19
Years Active
5
Top Authors
#8273
Topic ID

Activity Over Time

2007
6
2008
12
2009
52
2010
66
2011
74
2012
91
2013
107
2014
183
2015
196
2016
187
2017
138
2018
118
2019
107
2020
214
2021
137
2022
154
2023
162
2024
111
2025
104

Keywords

CPU IMO LazyEvaluation OOM ST PFDS OS LBS haskell.org EDIT haskell lazy evaluation laziness strict evaluated desirable language operations lisp

Sample Comments

theCodeStig • Jun 5, 2020 • View on HN

Can you elaborate on why Haskell's laziness is a dealbreaker?

chc • Dec 11, 2010 • View on HN

Unless you have a space leak, how is laziness a weakness there?

substation13 • Jun 24, 2022 • View on HN

What about the performance challenges caused by lazy evaluation?

taejo • Mar 15, 2017 • View on HN

You can in a lazy language, like Haskell.

wbl • Jan 29, 2020 • View on HN

Haskell would due to lazy evaluation.

hellofunk • Jun 14, 2017 • View on HN

I don't use Haskell but didn't I read recently that the latest version of Haskell addresses this common concern by allowing you to turn off laziness altogether so everything evaluates eagerly?

tinco • Aug 21, 2016 • View on HN

Can you give me an example of a domain where laziness is not desirable? I only do Haskell for side projects, so perhaps I lack exposure to some domains.

misja111 • Aug 15, 2016 • View on HN

Is Haskell's default lazy evaluation really a flaw that needs to be fixed? I personally like it, I find that most of the time lazy evaluation is what I need instead of strict.

erik_seaberg • Oct 4, 2019 • View on HN

Haskell is lazy by default, and sometimes builds up large unevaluated expression trees that need to be forced. Other languages are eager, but litter the code with abstractions like Callables and Futures and channels just to not do something.

icebraining • Aug 8, 2018 • View on HN

Isn't Haskell somewhat like that, due to being lazy by default?