# Elm

To user this language, use the class "language-elm".

## Comments

    -- Single line comment
    {- Multi-line
    comment -}

## Strings and characters

    'a'
    '\n'
    '\x03'
    "foo \" bar"
    """
    "multiline strings" are also
    supported!
    """

## Full example

    module Main exposing (..)

    import Html exposing (Html)
    import Svg exposing (..)
    import Svg.Attributes exposing (..)
    import Time exposing (Time, second)

    main =
        Html.program
            { init = init
            , view = view
            , update = update
            , subscriptions = subscriptions
            }

    -- MODEL

    type alias Model =
        Time

    init : ( Model, Cmd Msg )
    init =
        ( 0, Cmd.none )

    -- UPDATE

    type Msg
        = Tick Time

    update : Msg -> Model -> ( Model, Cmd Msg )
    update msg model =
        case msg of
            Tick newTime ->
                ( newTime, Cmd.none )

    -- SUBSCRIPTIONS

    subscriptions : Model -> Sub Msg
    subscriptions model =
        Time.every second (\time -> Tick time)

    -- VIEW

    view : Model -> Html Msg
    view model =
        let
            angle =
                turns (Time.inMinutes model)

            handX =
                toString (50 + 40 * cos angle)

            handY =
                toString (50 + 40 * sin angle)
        in
        svg [ viewBox "0 0 100 100", width "300px" ]
            [ circle [ cx "50", cy "50", r "45", fill "#0B79CE" ] []
            , line [ x1 "50", y1 "50", x2 handX, y2 handY, stroke "#023963" ] []
            ]