
Reasoning About Code - charlieegan3
http://www.lispcast.com/reasoning-about-code
======
wantreprenr007
"Don't make me think (unnecessarily)" is just one of several good ideals for
scalable and maintainable projects, because valuable code is easy to learn and
easy to add to. And since the code and doc is a shared, collaborative
description of machine behavior, it should help new people understand
tradeoffs, motivations for engineering decisions and history to better use or
add to it.

------
horsebees
Thinking about side effects is only a part of the issue. E.g. I use immutable
classes with builders in Java almost dogmatically.

Run-time cost thinking is something that is never brought up when FP is
contrasted to other forms.

For example, in CLRS when you look at run-time of a function with loops, it's
really really easy to just look for the loops.

But with FP... people like recursion. Solving recurrence relations is Hard
Work (tm).

