ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

Elmに再入門

今日やった事

Elmに(再)入門した。

昔挫折したElmに再入門した。今度は何か作りきるまではやめない方針。

とりあえずElm公式のGuideにある例を噛み砕きながら写経した。

module Main exposing (Model, Msg(..), init, main, update, view)

import Browser
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)


type alias Model =
    Int



-- initはModel型の値という意味の**型注釈**


init : Model
init =
    0


type Msg
    = Increment
    | Decrement



-- updateはMsgとModelを引数にとってModelを返す関数


update : Msg -> Model -> Model
update msg model =
    case msg of
        Increment ->
            -- Incrementだったらmodelに1を足して返す
            model + 1

        Decrement ->
            model - 1


view : Model -> Html Msg
view model =
    div []
        [ button [ onClick Decrement ] [ text "-" ]
        , div [] [ text (String.fromInt model) ]
        , button [ onClick Increment ] [ text "+" ]
        ]


main =
    Browser.sandbox
        { init = init
        , update = update
        , view = view
        }

正直Html Msgとかありとあらゆることがどういうことなのか全然わからない。どこを読んだらわかるのかもわからない。辛い。

研究

ちょっとだけ論文を書き進めた。一回書いたところを後から書き直すの結構辛い。

明日の予定 / やること

  • 研究
  • Elm

ちょっと研究論文放置気味なので明日は少し気合い入れてやる。

雑談

Elmわかり手になる日が来るのか…?