Well, for me, because, compared to other notation, they usually obscure intent.
> Loops are just a nice notation for some computational constructs.
But... they're mostly not.
> Loops are just a nice notation for some computational constructs.
Sometimes, but even then if a language has decent abstraction features that’s usually best for the low-level implementation of a generic algorithm, which you should never have to see when actually applying the algorithm to concrete types. True, if you don't have a generic implementation available, YAGNI often argues in favor of a concrete one for the immediate use case, so generic implementations separated from immediate concrete use isn't the only place to use explicit loops.
Well, for me, because, compared to other notation, they usually obscure intent.
> Loops are just a nice notation for some computational constructs.
But... they're mostly not.
> Loops are just a nice notation for some computational constructs.
Sometimes, but even then if a language has decent abstraction features that’s usually best for the low-level implementation of a generic algorithm, which you should never have to see when actually applying the algorithm to concrete types. True, if you don't have a generic implementation available, YAGNI often argues in favor of a concrete one for the immediate use case, so generic implementations separated from immediate concrete use isn't the only place to use explicit loops.