Я читал Joel On Software сегодня и наткнулся на эту цитату:
Без понимания функциональности программирования, вы не можете изобретать MapReduce, алгоритм, который делает Google настолько масштабируема. термины "Карта и сокращение" Lispи функциональное программирование. Уменьшение карты в ретроспективе очевидна для любого кто помнит их 6,001-эквивалентный класс программирования, который чисто функциональные программы имеют никаких побочных эффектов и, таким образом, тривиально параллелизуемое.
Что он имеет в виду, когда говорит, что функциональные программы не имеют побочных эффектов? И как это делает распараллеливание тривиальным?