Elm:
랜덤 숫자 생성하기
방법:
Elm의 순수 함수적 특성은 명령형 언어에서처럼 직접 무작위 수를 생성할 수 없다는 것을 의미합니다. 대신, Random
모듈을 명령과 함께 사용합니다. 1부터 100 사이의 무작위 정수를 생성하는 기본 예가 여기 있습니다.
우선, elm install elm/random
로 Random
모듈을 설치합니다. 그런 다음 필요한 HTML 및 이벤트 모듈과 함께 Elm 파일에 가져옵니다. 다음과 같습니다:
src/Main.elm
module Main exposing (..)
import Browser
import Html exposing (Html, button, text, div)
import Html.Events exposing (onClick)
import Random
이 예제를 독립 실행 형식으로 만들기 위해서는 이런 템플릿을 추가할 수 있습니다:
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.none
다음으로, 무작위 수를 생성할 명령을 정의합니다. 이는 생성될 무작위 수를 처리하는 Msg
유형과, 이를 저장할 Model
, 그리고 이 모든 것을 함께 묶는 업데이트 함수를 설정하는 것을 포함합니다.
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 )
무작위 수 생성을 트리거하려면, 예를 들어, 뷰에서 Generate
메시지를 보내는 버튼을 통해 이를 수행할 수 있습니다:
view : Model -> Html Msg
view model =
div []
[ div [] [ text ("Random Number: " ++ String.fromInt model.randomNumber) ]
, button [ onClick Generate ] [ text "Generate" ]
]
“Generate” 버튼을 클릭하면 1부터 100 사이의 무작위 수가 표시됩니다.
이 단순한 접근 방식은 적응하고 확장될 수 있으며, Random
모듈에 있는 다른 함수를 사용하여 무작위 부동소수점, 리스트 또는 사용자 정의 유형에 기반한 복잡한 데이터 구조까지 생성할 수 있어 Elm 애플리케이션에 예측 불가능성을 더하는 광범위한 장을 제공합니다.
Elm 가이드에서는 훨씬 더 자세히 설명하고 있습니다. 또한 여섯 면체 주사위를 굴리는 예제도 있습니다.