Когда я впервые начал смотреть на Scala, мне понравился внешний вид для понимания. Казалось, что они немного похожи на петли foreach, с которыми я привык с Java 5, но с функциональными ограничениями и много приятной синтаксической привлекательности.
Но поскольку я впитал стиль Scala, я обнаружил, что каждый раз, когда я мог использовать for-comprension, я использую map
, flatMap
, filter
, reduce
и foreach
вместо. Намерение кода кажется мне более ясным, с меньшим количеством потенциальных скрытых сюрпризов, и они, как правило, короче кода тоже.
Насколько мне известно, все-таки -понимание всегда скомпилировано в эти методы, поэтому мне интересно: на чем они на самом деле? Я пропустил какую-то функциональную ревальвацию (это будет не первый раз)? Разве для понимания понимаете, что другие функции не могут или, по крайней мере, будут намного более неуклюжими? Они сияют под конкретным прецедентом? Это действительно вопрос личного вкуса?