Dlaczego podniesienie wyjątku jest skutkiem ubocznym?
Zgodnie z wpisem wikipedii dlaefekt uboczny, zgłoszenie wyjątku stanowi efekt uboczny. Rozważ tę prostą funkcję Pythona:
def foo(arg):
if not arg:
raise ValueError('arg cannot be None')
else:
return 10
Wywoływanie go za pomocąfoo(None)
zawsze będzie spełniony wyjątek. To samo wejście, to samo wyjście. Jest przezroczysto-referencyjny. Dlaczego nie jest to czysta funkcja?