Princípios da programacao funcional First-class functions Pure functions Immutable variables Recursion Nonstrict evaluation Statements Pattern matching