Well I only noticed how much less efficient the "functional" code is, downright wasteful even. And nobody is going to tell me that this:
def move_cars():
for i, _ in enumerate(car_positions):
if random() > 0.3:
car_positions[i] += 1
..is not way more readable and clear than this: def move_cars(car_positions):
return map(lambda x: x + 1 if random() > 0.3 else x,
car_positions)
If you ask me the article makes a good argument against functional programming.