W książce „Programowanie funkcji w Scala”, to daje kilka przykładem tego, co jest „skutki uboczne”, jednym z nich jest:Dlaczego "czytanie z pliku" nie jest czystą funkcją?
- odczytywania lub zapisywania danych do pliku
Rozumiem, że "pisanie do pliku" nie jest czyste, ponieważ zmienia środowisko. Ale dlaczego "czytanie pliku" nie jest czyste? Nic nie zmienia.
Zobacz mój przykład:
val readFile: File => String = file => readingTheContentFromFile(file)
Czy zastanawiałeś się, w jaki sposób tylko część pliku zmienia tylko "odczytany wskaźnik" pliku, czy też dotyczy tylko odczytu całego pliku i zakładając, że zawartość pliku jest zawsze taka sama (co jest, oczywiście, odcinek)? –
możliwy duplikat [Czy jest to czysta funkcja, jeśli odczytuje niektóre dane z zewnątrz zamiast parametrów?] (Http://stackoverflow.com/questions/31376933/is-it-a-pure-function-if-it-reads -some-data-from-outside-rather-than-parameters) –