Por que o aumento de uma exceção é um efeito colateral?
De acordo com a entrada da wikipedia paraefeito colateral, levantar uma exceção constitui um efeito colateral. Considere esta função simples de python:
def foo(arg):
if not arg:
raise ValueError('arg cannot be None')
else:
return 10
Invocando-o comfoo(None)
sempre será atendida com uma exceção. Mesma entrada, mesma saída. É referencialmente transparente. Por que isso não é uma função pura?