Random 如何在Elm中随机生成一对浮动?
我试图创建一个Random 如何在Elm中随机生成一对浮动?,random,elm,Random,Elm,我试图创建一个Random.Generator(Float,Float),其中第一个Float在一定范围内,比如0.01000.0,第二个介于0.0和第一个值之间 有效值示例:(12.0,5.0) 无效:(303.0800.0) 我查看了模块中的代码,但找不到解决方法 下面的示例甚至不编译。:) 以下是发电机代码: floatTuple : Random.Generator (Float, Float) floatTuple = Random.float 0.0 1000.0
Random.Generator(Float,Float)
,其中第一个Float
在一定范围内,比如0.0
1000.0
,第二个介于0.0
和第一个值之间
有效值示例:(12.0,5.0)
无效:(303.0800.0)
我查看了模块中的代码,但找不到解决方法
下面的示例甚至不编译。:)
以下是发电机代码:
floatTuple : Random.Generator (Float, Float)
floatTuple =
Random.float 0.0 1000.0
`Random.andThen`
(\val1 -> Random.map ((,) val1) (Random.float 0 val1))
下面是如何使用它(在0.17中):
以下是发电机代码:
floatTuple : Random.Generator (Float, Float)
floatTuple =
Random.float 0.0 1000.0
`Random.andThen`
(\val1 -> Random.map ((,) val1) (Random.float 0 val1))
下面是如何使用它(在0.17中):
您需要使用
Random。然后
这是一个完整的工作示例(您可以复制并粘贴它)
您需要使用
Random。然后
这是一个完整的工作示例(您可以复制并粘贴它)
谢谢你的努力!谢谢你的努力!
(tuple, nextSeed) = Random.step floatTuple initialSeed
import Html exposing (..)
import Html.App as App
import Random exposing (Generator, generate, float, map, andThen)
import Time exposing (every, second)
myPair : Float -> Float -> Generator (Float, Float)
myPair min max =
let
range = float min max
in
range
`andThen` (\f -> map ((,) f) (float min f))
type Msg = Request | Update (Float, Float)
update msg model =
case msg of
Request -> model ! [generate Update (myPair 0 1000)]
Update pair -> pair ! []
view model = text (toString model)
main =
App.program
{ init = (0,0) ! []
, update = update
, view = view
, subscriptions = (\_ -> every (2*second) (always Request))
}