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))
    }