Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening!...
Transcript of Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening!...
![Page 1: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/1.jpg)
FreckleSimple Monadic Functional Reactive Programming for F#
![Page 2: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/2.jpg)
What is Functional Reactive Programming?● Coined by Elliott Conal
○ Values over time (Behaviors)
○ Resolution- Independence
○ Extended: Push-Pull FRP (2009)
● 2012: Elm (javascript)○ Inventor: Evan Czaplicki
○ Signals (Event Streams)
○ Simplifies Javascript
○ Not “real” FRP according to Conal
○ Hidden state approach (foldp)
![Page 3: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/3.jpg)
FRP is● Declarative● Time manipulation● Resolution Independence● Events as messages
FRP is not● Behaviors● Inherently time leaking● Hidden state
My View on FRP
![Page 4: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/4.jpg)
FRP Dream
![Page 5: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/5.jpg)
Freckle version
![Page 6: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/6.jpg)
Mouse Position
![Page 7: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/7.jpg)
Freckle Core Types
![Page 8: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/8.jpg)
"Perfection is Achieved Not When There Is Nothing More to Add, But When There Is Nothing Left to Take Away"
- Antoine de Saint-Exupery
![Page 9: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/9.jpg)
Search with suggestions
![Page 10: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/10.jpg)
FRP: Debouncing
![Page 11: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/11.jpg)
The Game Loop
![Page 12: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/12.jpg)
Sampling - Understanding the basics
What we want What we get
![Page 13: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/13.jpg)
Sampling - The naïve solution
![Page 14: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/14.jpg)
Freckle Sampling
![Page 15: Freckle - Meetupfiles.meetup.com/10193032/Freckle.pdf · Freckle Sampling. Thank you for listening! ^.^ 1 Sec Sleep 500ms O O O O O O O O Current Time Future 3: let desiredDeIay while](https://reader036.fdocuments.us/reader036/viewer/2022071512/61323262dfd10f4dd73a4b09/html5/thumbnails/15.jpg)
Thank you for listening! ^.^