Core FP Concepts

Post on 20-Jan-2015

214 views 4 download

Tags:

description

FP Core Concepts

Transcript of Core FP Concepts

Conceitos Funcionais

Functions as 1st Class Citizen

• Syntax Sugar• Abstractions• Simplicity• Utilities• Less Code More things Done• Awesome for Algorithms/calculations

CORE Functional Programing Fundamental Principles

1. Lambda Calculus

2. High Order Functions

3. Immutability

4. No Side Effects

Lambda/Closure/Anonymous Function

• Less Structure• Syntax Sugar• One time Usage• Work with High Order Functions

Lambda/Closure/Anonymous Function

High Order Functions

• Pass Function by Parameter• Return Function

• Ground for:• Lazyness• Composition

High Order Functions

First-class-Function Lazyness

High Order Functions

Composition

<= First-class-Function (oo)

<= High-Order-Function (FP)

Currying

• Lambda Calculus, Parallelism• Optional in several languages not Haskell• Awesome for DSL Creation• Transform: Chained Functions into single Arg

Currying

Monads

• FP way to deal with side effects• Similar to AOP Interceptors• Build Abstractions around your functions• It can encapsulate:• Control Flow (Option)• State Propagation (Io)

Monads

Conceitos Funcionais

Obrigado !!!