Valami sejtésem van azért a véletlengánerálásról ;)
Idézném a wiki-t, tudom nem szentírás, de hátha jó kiinduló pont:
- The function always evaluates the same result value given the same argument value(s). The function result value cannot depend on any hidden information or state that may change as program execution proceeds or between different executions of the program, nor can it depend on any external input from I/O devices (usually—see below).
- Evaluation of the result does not cause any semantically observable side effect or output, such as mutation of mutable objects or output to I/O devices (usually—see below).
Csűrhatjük meg csavarhatjuk, de a
func getRandom() { return xyImplementationOfRandomGenerator.next() } meg func getDate() { return new Date() } meg func storeToFs() { writeToFs("asd") } funkciók nem pure-ok, tehát "A pure funkcionális nyelvek készítői és kedvelői szerint viszont nincs szükség rájuk" - amire reagáltam - egy szép elmélet, de végül a gyakorlatban nem állja meg a helyét, mert ezen nyelvek kedvelői mindenféle trükkökkel próbálják a legkissebb szkópra redukálni a dolgot, de ha feketén meg fehéren nézzük, akkor bukó. Lehet tisztán pure programot írni pl. akadémiai fejlesztéseknél, és "verhetjük rá a nyálunk", de amint tárolni, vagy megjeleníteni is akarjuk az adatokat, ne adj isten külső forrásból beszerezni, akkor helló van.
-
Konténerezett Hadoop és Cassandra cluster konfigurálása - második rész