We start learn Java
                or other OO language
            
            
            
            
        
        
            
                Design Patters
                because we use weak language!
            
            
            
        
        
            
            
            
            
            
                All those rules we can name
            
            
                Object Oriented BSDM
                
            
        
        
            
                First time with
                Functional Programming
            
            
                Functional Programming
                ===
                 we have functions
            
            
                Map, filter, flatMap, reduce
            
            
            
            
            
            
            
                Whole those Functional Programming Kamasutra
            
        
        
            We need to join it somehow...
        
        
            
                What happens if you join OO BSDM & FP Kamasutra in one language?
            
            
            
            
        
        
            
            
            
            
            
                Solution?
                Trampoline pattern
            
            
            
            
            
        
        
        
            Do not write
            purely functional solution
            in non functional language
        
        
            
                Apply idea of
                functional programming
            
            
            
            
        
        
            
            
                Business analytic goes functional
            
            
                Focus on verbs
                Identification of common parts
            
            
                Generalization of nouns
                Identification of common actors
            
            
                Adjectives
                Implementation detail
            
            
            
            
            
        
        
            
                
                Problems?
            
            
            
            
            
                We need to understand business
            
        
        
            
            
            
                Refactorization goes easy
            
            
                We have space for experiments
            
            
            
                Ecology
                We reduce size of spec from ~1000 pages to
                ~150 pages