5*FAKT(4) = 5*4*FAKT(3) = 5*4*3*FAKT(2)=60*2*FAKT(1)=120*1*FAKT(0) = 120 kui fakt(0), siis = 1 Kirjutatud funktsionaalses programmeerimiskeeles, rekursiivselt. Millist tarkvaraüsteemi soovitab Joel Spolsky projektiplaani koostamiseks kasutada? - Evidence Based Scheduling FUNKTSIONAALSED KEELED: Funktsionaalseid keeli saab jämedalt jagada kahte liiki: puhtad ja kombineeritud. Puhtas funktsionaalses keeles -- Haskell, Hope, Miranda, FP -- ei ole programmeerijal peale funktsioonide defneerimise ja sisseehitatud baasfunktsioonide (aritmeetika, loendid jms) mingeid lisavahendeid -- kõik 20 kõrvalefektid on keelatud. Puhas funktsionaalne keel ei luba muutujatele väärtusi omistada. Ainus efekt, mis funktsiooni rakendamine argumentidele annab, on resultaadi leidmine. Kombineeritud funktsionaalsed keeled - ML, Lisp, Scheme - kombineerivad
vähem makse koormistena kui ennem. Koormised fikseeritud, aga inflatsioon sööb osa ära. Selliste arengute tulemusel püüti hiliskeskajal Lääne-Euroopas uuesti sisse seada pärisorjus ja teotöö. Tollal fikseeriti ka ülampalk, et vältida inimeste puuduses palkade tõusu. Sellised arengud vallandasid põlluharijate ülestõus 1381 Inglismaal. Laiendati karjakasvatust. Kas ,,hiliskeskaja kriis" üldse oli? Defneerimise küsimus, kindel see, et kõiki piirkondi ei tabanud see ühtemoodi. Kõikjal toimusid muutused: Traditsioonilist luksuskanga tootmist tabab see kriis valusalt ja selle tootmise keskused käivad alla, kuid nende kõrvale tekivad uued keskused, kus valmistatakse odavamat riiet, mis on mõeldud vähem rikkale ja vähem nõudlikule tarbijaskonnale. Feodaalid peavad ümber kohanema, asendavad põlluharimist tulutoovama loomakasvatamisega