adventures in elm
play

Adventures in Elm GOTO Chicago, 24 May 2016 Adventures in Elm - PowerPoint PPT Presentation

Adventures in Elm GOTO Chicago, 24 May 2016 Adventures in Elm Events, Reproducibility, and Kindness question your principles @jessitron Adventures in Elm Events, Reproducibility, and Kindness Data Data In Out Server UI Everything My


  1. Adventures in Elm GOTO Chicago, 24 May 2016

  2. Adventures in Elm Events, Reproducibility, and Kindness question your principles

  3. @jessitron Adventures in Elm Events, Reproducibility, and Kindness

  4. Data Data In Out

  5. Server UI

  6. Everything My that Dream matters Appearance

  7. JavaScript + React + Redux ClojureScript + Om Scala.js + React

  8. language architecture system

  9. undefined is not a function

  10. “I tried over and over again to turn my self doubt into a pure functional program, and eventually, it clicked.” @mrb_bk

  11. substring : Int -> String -> String substring qty string = … locationCode : String -> String locationCode = substring 3 peelerLocation : String peelerLocation = substring 3 "STL-48" locations : List String locations = ["STL", "ORD"]

  12. peelerLocation : String peelerLocation = substring 3 "STL-48" peelerLocation = "STL-48" |> substring 3

  13. g type alias LocationCode = String n i m a n locationCode : String -> String locationCode = substring 3 peelerLocation : String peelerLocation = "STL-48" |> substring 3 locations : List String locations = ["STL", "ORD"]

  14. g type alias LocationCode = String n i m a n locationCode : String -> LocationCode locationCode = substring 3 peelerLocation : LocationCode peelerLocation = "STL-48" |> substring 3 locations : List LocationCode locations = ["STL", "ORD"]

  15. type alias Machine = { locationCode : LocationCode records , number : Int } myPeeler : Machine myPeeler = { locationCode = "STL" , number = 48 }

  16. expressions type alias Machine = { locationCode : LocationCode , number : Int } parse : String -> Machine parse s = let location = locationCode s num = … in { locationCode = location , number = num }

  17. new type! type MachineDatum = Location LocationCode | Number Int machineData : List MachineDatum machineData = [ Location "STL" constructors! , Number 48 ]

  18. pattern matching! type MachineDatum = Location LocationCode | Number Int describe : MachineDatum -> String describe datum = case datum of Location code -> "in " ++ code Number n -> "number " ++ (toString n)

  19. Hello World

  20. Evan Czaplicki

  21. Hello Mouse

  22. Hello Deeter

  23. Deeter Clicks

  24. model update view

  25. small pieces encapsulated

  26. natural extensible

  27. server compiler package manager test tools build tools editors libraries learning community

  28. https://derpiboo.ru/720277

  29. elm-lang.org @jessitron http://guide.elm-lang.org/ github.com/jessitron/elm-hello-wrold github.com/satellite-of-love/landscape

  30. modules: explicit exports, explicit dependencies packages: required docs, enforced semantic versioning types: parameterized types, type inference, aliases, unions, records

  31. points about elm: evolution - target audience (Everyone) - narrow objective (target experience) - language system (experience) - explicitness -

  32. what this changes: structure (framework) - larger components - global state: components can call each - others' functions standards for my experience -

  33. predictability: reproducibility of event model - deterministic dispatch - versioning guarantees -

  34. Explicitness Evolution Event-based Enlightenment

  35. http://javkiller.deviantart.com/art/Library-colors-243633627 http://strachattack.deviantart.com/art/Queen-Chrysalis-493886766 http://ohemo.deviantart.com/art/Evolved-Chrysalis-493427839 http://mlp.wikia.com/wiki/Canterlot/Gallery

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend