ash furrow, functional programming in swift

Post on 07-Jul-2015

197 Views

Category:

Mobile

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Ash Furrow, Functional programming in swift

TRANSCRIPT

the  f&t&re  of

Ash Furrow, Artsy

functional programming

on  iOS

Objective-C

Closures

Functional patterns

Concise syntax

Native Collections

Operator overloading

Namespaces Tuples

Clear mutability syntax

Interactive playground Multiple return types

Generics

Protocols and extensions on structsPattern matching

Fast iteration

Optional types

Object orientation

Type inference

Read-Eval-Print-Loop (REPL)

Compile to native code

Closures

Functional patterns

Concise syntax

Native Collections

Operator overloading

Namespaces Tuples

Clear mutability syntax

Interactive playground Multiple return types

Generics

Protocols and extensions on structsPattern matching

Fast iteration

Optional types

Object orientation

Type inference

Read-Eval-Print-Loop (REPL)

Compile to native code

Closures

Functional patterns

Concise syntax

Native Collections

Operator overloading

Namespaces Tuples

Clear mutability syntax

Interactive playground Multiple return types

Generics

Protocols and extensions on structsPattern matching

Fast iteration

Optional types

Object orientation

Type inference

Read-Eval-Print-Loop (REPL)

Compile to native code

Objective-C

It will not be we make apps for the WATCH 5 and the other future iOS devices. It will be a group of developers very much like us. But with more of our strengths and fewer of our weaknesses. More confident, far-seeing, and capable of using functional paradigms. For all of our failings, despite our limitations and fallibilities, we developers are capable of greatness.

—Carl Sagan

1. Imperative  prog5amming  is  old  and  busted  

2. Functional  prog5amming  is  the  new  ho?@ess  

3. Ge?ing  starCed  with  f&nctional  prog5amming  in  Swist  is  super-­‐easy

old

and

busted

ANDA MASK ;AND A with Mask BNE ADD1 BRA NONE1 ADD1 INY ;increment our counter of 1's NONE1 LDAA TEMP ;reload accumulator A LSL MASK ;Shift the mask's 1 bit left BNE LOOP1 ;If we haven't finished our loop, branch LDAA #$01 ;load new mask into A STAA MASK ;store the reset mask into MASK TSX ;pull of return address and store in X PULA ;pull off A STAA TEMP ;store the value into temp TXS ;push return address back onto the stack LOOP2 LDAA TEMP ;Load A into TEMP ANDA MASK ;logical AND MASK with A BNE ADD2 ;add one if we need to BRA NONE2 ADD2 INY ;increment our counter of 1's NONE2 LDAA TEMP LSL MASK ;shift our mask left by one BNE LOOP2 ;loop back until we've exhausted positions STY TEMP ;store Y into TEMP - this is the number of 1's

newhottness

functional programming

• It’s been around forever

• But only in universities (ew)

what is functional programming?

• Treat computation as the result of functions

• Avoid mutable state and data

f&nctional  prog5amming  tells  the  computer

instead  of

what to do

how to do it

getting started

is

super-easy

code

let’s

github.com/ashfurrow/minsk

resources

• Books

• Blogs

• GitHub

• ReactiveCocoa

• LlamaKit

• Stack Overflow

• Tweet me

objc.io/books

github.com/artsy/eidolon

1. Imperative  prog5amming  is  old  and  busted  

2. Functional  prog5amming  is  the  new  ho?@ess  

3. Ge?ing  starCed  with  f&nctional  prog5amming  in  Swist  is  super-­‐easy

so where now?

• Swift promised functional patterns

• Failed to deliver

• Community is picking up the slack

make

better mistakes

tomorrow

thanks

@ashfurrow

top related