Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Html exposing (Html, button, div, text)
- import Html.Events exposing (onClick)
- main =
- Html.beginnerProgram { model = model, view = view, update = update }
- type alias Model =
- { nbr : Int
- , dec : List Int
- }
- model : Model
- model = Model 0 []
- type Msg = Increment | Decrement | Decompose
- update : Msg -> Model -> Model
- update msg model =
- case msg of
- Increment ->
- { model | nbr = model.nbr + 1 }
- Decrement ->
- { model | nbr = model.nbr - 1 }
- Decompose ->
- { model | dec = decompose model.nbr 2 []}
- decompose : Int -> Int -> List Int -> List Int
- decompose nbr factor list =
- if (nbr > 0 && sqrt(toFloat nbr) >= toFloat factor) then
- if ((nbr % factor) == 0) then
- decompose (nbr//factor) factor (factor :: list)
- else
- decompose nbr (factor + 1) list
- else
- nbr :: list
- view : Model -> Html Msg
- view model =
- div []
- [ button [ onClick Decrement ] [ text "-" ]
- , button [ onClick Increment ] [ text "+" ]
- , button [ onClick Decompose ] [ text "Dec" ]
- , div [] [ text (toString model.nbr) ]
- , div [] [ text ("Decomposition : " ++ toString model.dec) ]
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement