Elm programma’s
Contents
Elm programma’s#
In dit notebook geven we enkele voorbeelden van Elm programma’s. Een Elm programma bestaat uit één of meer code-cellen, waarvan de laatste cel eindigt met
-- compile-code
Dit geeft aan dat de voorafgaande cellen vertaald en uitgevoerd moeten worden.
Het resultaat van een Elm programma is meestal een stukje web-pagina: HTML of SVG, eventueel met een Canvas voor tekeningen of animaties.
Het eerste voorbeeld is “Hello World” in Elm:
import Html
main =
Html.text "Hello, World!"
-- compile-code
Interactieve Elm “app”#
Het voorbeeld hieronder is een eenvoudige interactieve Elm “app”. Het resultaat is een stukje web-pagina met een teller en twee knoppen, voor het ophogen en voor het aflagen van de teller.
Dit programma is gebaseerd op de “Elm architectuur” voor web-apps. Voor een verdere uitleg, zie https://guide.elm-lang.org/architecture/buttons.html
module Main exposing (..)
-- Press buttons to increment and decrement a counter.
--
-- Read how it works:
-- https://guide.elm-lang.org/architecture/buttons.html
--
import Browser
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)
-- MAIN
main =
Browser.sandbox { init = init, update = update, view = view }
-- MODEL
type alias Model = Int
init : Model
init =
0
-- UPDATE
type Msg
= Increment
| Decrement
update : Msg -> Model -> Model
update msg model =
case msg of
Increment ->
model + 1
Decrement ->
model - 1
-- VIEW
view : Model -> Html Msg
view model =
div []
[ button [ onClick Decrement ] [ text "-" ]
, div [] [ text (String.fromInt model) ]
, button [ onClick Increment ] [ text "+" ]
]
-- compile-code