Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
elm introduction at OK Lab Niederrhein
Search
Elmar Burke
July 13, 2016
Technology
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
elm introduction at OK Lab Niederrhein
Elmar Burke
July 13, 2016
More Decks by Elmar Burke
See All by Elmar Burke
Offene Daten Nutzen - OpenData-Talk beim OTS Learners Meetup Mai 2016
elmarburke
0
63
Europe - What are you?
elmarburke
0
78
Hoodie & offlineFirst @ NijmegenJS
elmarburke
0
480
Sketchnotes belongs to Talk https://speakerdeck.com/elmarburke/hoodie-and-offlinefirst-at-nijmegenjs
elmarburke
0
83
Other Decks in Technology
See All in Technology
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
140
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
820
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
300
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.7k
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
110
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.4k
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
350
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
310
AIのためのEthernet技術動向 (SerDes)
markunet
1
110
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.1k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
230
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Documentation Writing (for coders)
carmenintech
77
5.5k
Building AI with AI
inesmontani
PRO
1
1.1k
Crafting Experiences
bethany
1
250
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Become a Pro
speakerdeck
PRO
31
6.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
530
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Transcript
ELM FUNCTIONAL PROGRAMMING IN YOUR BROWSER INTRODUCTION BY ELMAR BURKE
WHO AM I? Elmar Burke @elmarburke on mostly every network
[email protected]
I'M ONE OF THE PEOPLE AT ANGULARJS.DE We have articles
about AngularJS and Angular 2, a developer register and we give workshops!
EVERYTHING STARTS WITH A Hello World main = span [class
"welcome-message"] [text "Hello, World!"]
"THE HISTORY OF PROGRAMMING" AS SEEN FROM JAVASCRIPT 1. Assembly
2. C 3. Java 4. JavaScript
"THE HISTORY OF PROGRAMMING" AS SEEN FROM JAVASCRIPT 1. Assembly
- maintainability 2. C - memory management 3. Java - all those freakin' types 4. JavaScript - maintainability
WHAT'S THE NEXT LANGUAGE? > Types? > Functional? > Gradual
Types? > Prolog? > Stack-based?
None
WHAT MAKES ELM SO GREATE > No runtime exceptions >
Friendly Error Messages > Blazing fast rendering1 > Libraries with guarantees > Clean syntax > Smooth JavaScript interop 1 With the package elm-html
LETS BUILD SOMETHING WE'LL BUILD A SIMPLE COUNTER IN ELM
Go to elm-lang.org and grab the installer or head over to elm-lang.org/try
THE ELM ARCHITECTURE > Model — the state of your
application > Update — a way to update your state > View — a way to view your state as HTML
import Html exposing (..) -- MODEL type alias Model =
{ ... } -- UPDATE type Msg = Reset | ... update : Msg -> Model -> Model update msg model = case msg of Reset -> ... ... -- VIEW view : Model -> Html Msg view model = ...
import Html exposing (Html, button, div, text) import Html.App as
Html import Html.Events exposing (onClick) main = Html.beginnerProgram { model = 0, view = view, update = update } type Msg = Increment | Decrement update msg model = case msg of Increment -> model + 1 Decrement -> model - 1 view model = div [] [ button [ onClick Decrement ] [ text "-" ] , div [] [ text (toString model) ] , button [ onClick Increment ] [ text "+" ] ]
ADD A RESET BUTTON You'll need > A message >
An update > A button
ADD TYPES Types are optional. You can just add them.