Elm:
Generowanie liczb losowych
Jak to zrobić:
Czysto funkcyjna natura Elm oznacza, że nie możesz bezpośrednio generować liczb losowych, jak mogłoby to być w językach imperatywnych. Zamiast tego używasz modułu Random w połączeniu z komendami. Oto podstawowy przykład, który generuje losową liczbę całkowitą między 1 a 100.
Najpierw zainstaluj moduł Random za pomocą elm install elm/random. Następnie zaimportuj go do pliku Elm wraz z potrzebnymi modułami HTML i zdarzeń, tak jak poniżej:
src/Main.elm
module Main exposing (..)
import Browser
import Html exposing (Html, button, text, div)
import Html.Events exposing (onClick)
import RandomAby to był samowystarczalny przykład, możesz dodać ten kod startowy:
main =
Browser.element { init = init, update = update, subscriptions = subscriptions, view = view }
init : () -> (Model, Cmd Msg)
init _ =
(Model 0, Cmd.none)
subscriptions : Model -> Sub Msg
subscriptions _ =
Sub.noneNastępnie zdefiniuj komendę do generowania losowej liczby. Obejmuje to ustawienie typu Msg do obsługi wygenerowanej liczby losowej, Model do jej przechowywania oraz funkcję aktualizującą, aby wszystko połączyć.
type Msg
= Generate
| NewRandom Int
type alias Model = { randomNumber : Int }
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
Generate ->
( model, Random.generate NewRandom (Random.int 1 100) )
NewRandom number ->
( { model | randomNumber = number }, Cmd.none )Aby zainicjować generowanie numeru, możesz wysłać wiadomość Generate, na przykład, poprzez przycisk w swoim widoku:
view : Model -> Html Msg
view model =
div []
[ div [] [ text ("Random Number: " ++ String.fromInt model.randomNumber) ]
, button [ onClick Generate ] [ text "Generate" ]
]Kiedy klikniesz przycisk “Generate”, zostanie wyświetlona losowa liczba między 1 a 100.
To uproszczone podejście można dostosować i rozszerzyć, wykorzystując inne funkcje w module Random do produkcji losowych liczb zmiennoprzecinkowych, list lub nawet złożonych struktur danych opartych na typach niestandardowych, zapewniając ogromne możliwości dodawania nieprzewidywalności do aplikacji Elm.
Przewodnik Elm zawiera znacznie więcej informacji. Znajduje się tam również przykład rzutu sześcienną kostką.