▲ | kace91 4 days ago | |
I'm not a hard defender of functional programming in general, mind you. It's just that a ridiculous amount of steps in real world problems can be summarised as 'reshape this data', 'give me a subset of this set', or 'aggregate this data by this field'. Loops are, IMO, very bad at expressing those common concepts briefly and clearly. They take a lot of screen space, usually accesory variables, and it isn't immediately clear from just seing a for block what you're about to do - "I'm about to iterate" isn't useful information to me as a reader, are you transforming data, selecting it, aggregating it?. The consequence is that you usually end up with tons of lines like userIds = getIdsfromUsers(users); where the function is just burying a loop. Compare to: userIds = users.pluck('id') and you save the buried utility function somewhere else. |